$client = new \Joli\ArDrone\Client();
// use API service (see below)
$client->start();
PHP-ar-drone является портом node-ar-drone, который позволяет пользователю управлять Parrot AR Drone на PHP. Пару лет назад, когда Адриен Баптист демонстрировал эту технологию, это могло показаться шюткой, но не сегодня.
Известные личности в мире PHP и не очень известные, многие сейчас в интернете обсуждают три основных темы – это PHP 7 против HHVM, асинхронное программирование с ReactPHP и PSR-7, а также микрофреймворки как middleware.
Во многом, споры о будущем PHP активизировались с появлением “прямого конкурента” движку PHP Zend Engine. Таким конкурентом стал HHVM — виртуальная машина для компиляции PHP кода в машинный, основанная на JIT, которая была разработана Facebook для решения все возрастающих нагрузок на сервера. Добившись повышения производительности удалось увеличить трафик на 500-600 процентов в сравнении с популярными версиями PHP на Zend 2. После чего, HHVM был отдан в свободное пользование в первую очередь сообществу WordPress. Именно это заставило основателей Zend Engine воспринимать HHVM, как прямого конкурента и к декабрю 2015-го выкатить 3-ю версию движка для PHP 7.
Советую прочитать обзор по результатам тестирования PHP разных версий в сопоставлении с HHVM здесь.
Хоть на самом деле конкуренцией в прямом смысле здесь и не пахло, сообщество PHP заметно оживилось и в короткие сроки было сделано много из того что планировалось долгие годы. Сегодня это проявляется в 100%-м увеличении производительности PHP 7 по сравнению со всеми 5-ми версиями. Также заметно возрос интерес к асинхронным возможностям PHP и использование React техногий на ряду с интергацией PSR 7 в популярных фреймворках.
Я выбрал одни из самых емких цитат известных PHP гуру на Reddit и Quora чтобы как-то подытожить рефлексии на тренды и прогнозы, и приведу их ниже.
Адам Englander, инджениринг директор LaunchKey, Inc выразился так:
«В 2016 году мы будем видеть все больше и больше совместимости между фреймворками. Symfony, Laravel и Drupal (CMS), это только начало. Благодаря PSR-7, также будут становиться более распространенным фреймворки, основанные на концепции middleware. 3-я версия Slim Framework и Zend Expressive оба самые настоящие middleware фреймворки. Это новая эпоха в PHP с принципом взаимодействия в самой его основе.
Мы должны также видеть рост асинхронного программирования, в частности, благодаря icicle.io. Команда разрабатывающая icicle.io прошла долгий путь, чтобы сделать асинхронное программирование более доступным с использованием Promises и Generators, во многом схоже с ECMAScript 2015 в JavaScript.
Мой последний прогноз на 2016 год будет основываться на предыдущем предсказании. Вы начнете видеть некоторое движение на уровне реальных аппаратных средств, разработками Интернет вещей (IoT) в PHP. С действительно асинхронно программируемыми фреймворками, использующими преимущества асинхронного input/ output вы сможете писать PHP приложения, которые с легкостью будут получать инпут на Raspberry Pi, Intel Edison и других устройствах IoT, работающих под управлением операционных систем Linux».
Рафаэль Dohms, создатель Amsterdam PHD, также сказал:
«Я думаю, что это будет интересный год для PHP. Помимо запуска PHP 7, дающего прыжок в производительности, который мы видели в HHVM в последние годы, что само по себе вдохнуло новую жизнь в существующие платформы, а также помогло многим компаниям сэкономить на инфраструктуре, фактор, который повлияет на дальнейшее развитие, это PSR -7.
PSR -7, стандарт для HTTP сообщений, принес с собой возможность создания решений в самых разных формах. В первую очередь он обратил много внимания и показал простоту использования патерна Middleware. Это уже позволяет PHP следовать трендам, таким, как мы видим в сообществе Node.js в создании систем, использующих middleware.
Zend Expressive является отличным примером очень небольшой реализации этой модели, которая в свою очередь позволяет нам отойти от монолитных структур (мы делали это в течение 4-5 лет) и действительно начать „составление“ решения из множество мелких и смешанных блоков.
Это новое дыхание для микро-фреймворков и микро-библиотек, тенденции, которые мы уже видели. По крайней мере, для меня будущий тренд основан именно на этих, более компонентных фреймворках, и решений, созданных из склейки частей нескольких фреймворков вместе, всех вместе наслаивающихся поверх тонкой реализации HTTP в значительной степени на основе PSR-7 и middleware».
Мое личное мнение относительно трендов в этом году немного расходится со всем выше сказаным, поскольку тренд становится таковым, только тогда, когда технология, 7-я версия PHP, ReactPHP либо даже HHVM, “попадает в массы”, то есть поглощается главным пользователем. Но мы знаем, что по статистике главный пользователь – это большинство, то есть маленькие проекты на WordPress, Drupal, Magento, трафик которых и нагрузка на сервера довольно редко превышает нормы допустимого.
С другой стороны, освоить и справиться со сложной конфигурацией например HHVM сможет далеко не каждый разработчик WordPress. Или например, заставить своего хостинг провайдера инсталировать 7-ку на вашем сервере либо shared хостинге – задача, сомнительного характера для любого разработчика средней руки. Само-собой разумеется, что более крупные проекты, которые формируют меншинство, вполне практично используют финансовые возможности в решении вопросов с трафиком, закупая и оборудуя по своим нуждам сервера. И конечно же, только самые большие компании обычно имея достаточную экспертную базу разумно используют финансовые рычаги оптимизируя технологии а не сервера.
Поэтому трендом в этом году, по моему скромному мнению может стать технология на которую меньше обращают внимания сегодня, а именно Phalcon + Zephir. Это как раз та технология которая дает большой прыжок в скорости, а в простоте использования выглядит привлекательней любого современного фреймворка.
Посмотрите краткое видео о том как за 15 минут с Phalcon можно создавать приложения:
Как видите для пользователей Ubuntu установка Phalcon сложна ровно настолько:
$ sudo apt-add-repository ppa:phalcon/stable
$ sudo apt-get update
$ sudo apt-get install php5-phalcon
Установка Zephir:
$ git clone https://github.com/phalcon/zephir
$ cd zephir
$ ./install -c
Предварительно устанавливаем компилятор несколько пакетов для PHP:
$ sudo apt-get update
$ sudo apt-get install git gcc make re2c php5 php5-json php5-dev libpcre3-dev
И вот мы уже не просто готовы за 15 минут создать приложение-опросник, но и, для простоты примера, написать свой калькулятор для подсчета голосов в приложении:
namespace Myframework;
class Calculator {
public function add(int a, int b) {
return a + b;
}
}
Для PHP разработчика здесь все довольно по домашнему, просто главное что следует помнить – уточняем типы данных для компилирования(можно использовать декларирование либо статически прописывать int, bool, char).
Говорим Зефиру bin/zephir compile чтобы он скомпилировал для нас икстеншн в C, и затем возвращаем его в среду PHP с помощью нескольких простых команд:
$ cd ext/
$ phpize
$ ./configure
$ make
$ sudo make install
$ echo "extension=/usr/lib/php5/20100525/myframework.so" | sudo tee -a /etc/php5/cli/conf.d/myframework.ini
У нас готово С расширение для Phalcon! Тестируем:
$ php -a
Interactive mode enabled
php > $calc = new Myframework\Calculator;
php > var_dump($calc->add(2, 1));
int(3)
Кого уже заинтересовала эта магия, можете углубиться в документацию здесь.
Инновационно в Phalcon даже не то, что фреймворк становится С расширением для вашей машины, но то, что Zephir дает любому PHP разработчику супер-силу расширять функционал фреймворка на родном языке.
И это ненавязчиво возвращает нас концепции тренда описанной в начале этой статьи, когда PHP разработчик получает билет в мир IoT, и с комфортом въезжает в него на своем слоне.
Это захватывает, а то что захватывает, имеет все предпосылки стать трендом!
Комментарии (12)
roodz
17.03.2016 00:31Вот бы еще Zephir/Phalcon для PHP7 официально вышел, наконец.
VladimirChe
17.03.2016 01:09судя по тому, что только в декабре был официальный релиз 7-ки, а команда Zephir еще в августе сделала существенные доработки для Phalcon, ждать долго не придется). Следим за апдейтами https://blog.phalconphp.com/
zm_llill
17.03.2016 16:09В бете уже есть, щас тестирую такую связку, есть какие-то ошибки, но пока не разобрался в них, поэтому подробнее говорить не буду. А вообще, версия 2.1.х, создаваемая под пхп 7, уже около года в разработке.
alekciy
17.03.2016 11:18На сколько я помню все уже давно есть в отдельном бранче. Другой вопрос, что команда не готова это влить в master. По мне так и не нужно это делать вовсе. Пользователям будет явно проще делать сборку из Х ветки, чем разработчикам сливать в одну две таких разных ветки.
KasperGreen
17.03.2016 06:10+2Phalcon + Zephir настораживают. На Xbox 360 материнки с такими именами довольно часто горели, Зефир точно каждый второй сгорел. Надеюсь это просто совпадение
Invision70
17.03.2016 10:10Объясните в чем смысл использовать Phalcon / Zephir на php 7?
alekciy
17.03.2016 11:22Уже имеющийся проект на Phalcon который был запущен на предыдущей версии PHP. Желание еще больше сэкономить на ресурсах железа. Кому-то просто это фрейворк нравиться больше, чем другие. Кто-то хочет часть коду упихать в расширение. В общем контекстов в проекте может быть много, поэтому и причин использовать именно эту связку хватает.
p4s8x
17.03.2016 13:21+1С Zephir надо быть очень осторожным, при не знании бывают такие ситуации: https://github.com/phalcon/zephir/issues/948
Invision70
Не шютите так
ha2bj
Так там же икстеншн ведь.
VladimirChe
все правильно, в хорошем хабре всегда должен быть веселый шютка и храбрый икстеншн