О чем говорят тренды PHP в 2016-м году?

    Если вы узнали эти несколько строчек кода ниже, значит потенциально вы в тренде последних лет развития 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, и с комфортом въезжает в него на своем слоне.

    Это захватывает, а то что захватывает, имеет все предпосылки стать трендом!
    Инфопульс Украина
    96.93
    Creating Value, Delivering Excellence
    Share post

    Comments 12

      +1
      Не шютите так
        0
        Так там же икстеншн ведь.
          +1
          все правильно, в хорошем хабре всегда должен быть веселый шютка и храбрый икстеншн
        0
        Вот бы еще Zephir/Phalcon для PHP7 официально вышел, наконец.
          0
          судя по тому, что только в декабре был официальный релиз 7-ки, а команда Zephir еще в августе сделала существенные доработки для Phalcon, ждать долго не придется). Следим за апдейтами https://blog.phalconphp.com/
            0
            В бете уже есть, щас тестирую такую связку, есть какие-то ошибки, но пока не разобрался в них, поэтому подробнее говорить не буду. А вообще, версия 2.1.х, создаваемая под пхп 7, уже около года в разработке.
            0
            На сколько я помню все уже давно есть в отдельном бранче. Другой вопрос, что команда не готова это влить в master. По мне так и не нужно это делать вовсе. Пользователям будет явно проще делать сборку из Х ветки, чем разработчикам сливать в одну две таких разных ветки.
            +2
            Phalcon + Zephir настораживают. На Xbox 360 материнки с такими именами довольно часто горели, Зефир точно каждый второй сгорел. Надеюсь это просто совпадение
              –1
              [Картинка с троллейбусом из хлеба.jpg]
                0
                Объясните в чем смысл использовать Phalcon / Zephir на php 7?
                  0
                  Уже имеющийся проект на Phalcon который был запущен на предыдущей версии PHP. Желание еще больше сэкономить на ресурсах железа. Кому-то просто это фрейворк нравиться больше, чем другие. Кто-то хочет часть коду упихать в расширение. В общем контекстов в проекте может быть много, поэтому и причин использовать именно эту связку хватает.
                    +1
                    С Zephir надо быть очень осторожным, при не знании бывают такие ситуации: https://github.com/phalcon/zephir/issues/948

                  Only users with full accounts can post comments. Log in, please.