Если вы узнали эти несколько строчек кода ниже, значит потенциально вы в тренде последних лет развития PHP.

$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)


  1. Invision70
    17.03.2016 00:08
    +1

    Не шютите так


    1. ha2bj
      17.03.2016 00:28

      Так там же икстеншн ведь.


      1. VladimirChe
        17.03.2016 00:45
        +1

        все правильно, в хорошем хабре всегда должен быть веселый шютка и храбрый икстеншн


  1. roodz
    17.03.2016 00:31

    Вот бы еще Zephir/Phalcon для PHP7 официально вышел, наконец.


    1. VladimirChe
      17.03.2016 01:09

      судя по тому, что только в декабре был официальный релиз 7-ки, а команда Zephir еще в августе сделала существенные доработки для Phalcon, ждать долго не придется). Следим за апдейтами https://blog.phalconphp.com/


      1. zm_llill
        17.03.2016 16:09

        В бете уже есть, щас тестирую такую связку, есть какие-то ошибки, но пока не разобрался в них, поэтому подробнее говорить не буду. А вообще, версия 2.1.х, создаваемая под пхп 7, уже около года в разработке.


    1. alekciy
      17.03.2016 11:18

      На сколько я помню все уже давно есть в отдельном бранче. Другой вопрос, что команда не готова это влить в master. По мне так и не нужно это делать вовсе. Пользователям будет явно проще делать сборку из Х ветки, чем разработчикам сливать в одну две таких разных ветки.


  1. KasperGreen
    17.03.2016 06:10
    +2

    Phalcon + Zephir настораживают. На Xbox 360 материнки с такими именами довольно часто горели, Зефир точно каждый второй сгорел. Надеюсь это просто совпадение


  1. Ungla
    17.03.2016 09:47
    -1

    [Картинка с троллейбусом из хлеба.jpg]


  1. Invision70
    17.03.2016 10:10

    Объясните в чем смысл использовать Phalcon / Zephir на php 7?


    1. alekciy
      17.03.2016 11:22

      Уже имеющийся проект на Phalcon который был запущен на предыдущей версии PHP. Желание еще больше сэкономить на ресурсах железа. Кому-то просто это фрейворк нравиться больше, чем другие. Кто-то хочет часть коду упихать в расширение. В общем контекстов в проекте может быть много, поэтому и причин использовать именно эту связку хватает.


    1. p4s8x
      17.03.2016 13:21
      +1

      С Zephir надо быть очень осторожным, при не знании бывают такие ситуации: https://github.com/phalcon/zephir/issues/948