Выпуск №17

У Laravel почти 20тыс звёзд и самые звёздные проекты на GitHub, подкаст Sound of Symfony, релизы Magento 2 и Drupal 8, исходники yiiframework.com, PHP Must Watch на YouTube и что вы думаете о многопоточном программироании в PHP — опрос.

Всем привет!

Вы слушаете «Пятиминутку PHP», выпуск номер 17 — еженедельный подкаст о новостях из мира PHP, интересных постах в блогах и современных подходах к разработке.

Начну с высоких достижений.

Как написал Taylor Otwell в своём twitter, фреймворк Laravel скоро станет первым PHP проектом с 20тыс. звёзд на GitHub.
Непосредственно перед записью этого выпуска у Laravel было 19877 звёзд и это действительно самый звёздный PHP проект. Я не поленился и проверил, как обстоят дела по другим языкам программирования на GitHub. Для этого в поисковой строке я ввёл запрос stars:>20000 — и обнаружил 21 репозиторий на JavaScript, 3 репозтирия на Ruby и 3 на CSS, и по одному на Shell, Objective-C, HTML, Go, CoffeeScript, C++ и C.

С общем рейтинге с большим отрывом лидирует Bootstrap — 89тыс. звёзд, затем идёт довольно интересный репозиторий Free Programming Books (сборник бесплатных книг по программированию) — 45 тысяч звёзд. Затем Angular, D3, NodeJs, jQuery и т.д. — как видите, на гитхабе засилие JavaScript’а.

На днях вышел свежий выпуск подкаста Sound of Symfony — эпизод №9. Предыдущий выпуск был в мае этого года и после столь длительного перерыва ведущие вернулись к микрофонам. Обещают активно продолжать шоу! В этом выпуске разговор пошел о прошлом и будущем фреймворка Symfony и об экосистеме PHP в целом, о революции Composer и о новом инструменте Puli, об assetic против gulp, о конфигурировании Symfony приложений с помощью переменных окружения и компиляции DI контейнера, и о многом другом. Рекомендую — хороший выпуск и подкаст в целом.

Как и планировалось на прошедшей неделе состоялись мажорные релизы Magento 2 и Drupal 8 — и тут и там активно используются компоненты Symfony. Magento 2 все уже успели потроллить за класс в 2,5тыс строк и 35 параметрами в конструкторе, ну а про Drupal 8 на хабре опубликован критический взгляд от создателя PHPixie.

Разработчики фреймворка Yii опубликовали исходники сайта yiiframework.com, можно внести свой вклад в развитие. На мой вкус сайт Yii выглядит не так презентабельно, как у тех же Laravel, Symfony или Zend — есть над чем поработать!

А вы знали про такой GitHub репозиторйи https://github.com/phptodayorg/php-must-watch — это список ссылок на видео по теме PHP, как понятно из названия — просто Must Watch!

На днях посмотрел один пункт из этого списка: выступление Фабьена (автора Symfony) на конференции dotScale в 2014 году с небольшим, но ёмким докладом об экосистеме PHP. Как верно отметил Фабьен, люди не очень любят PHP как язык, но любят его как платформу, которая проста и надёжна. Глобальное состояние очищается после каждого запроса, поэтому PHP не течёт и не падает. Но есть и обратная сторона медали — долгая загрузка фреймворков на каждый запрос. Одно из решений — это сервер приложений, который будет держать фреймворк постоянно загруженным, например PHP-PM или appserver.io. Помимо сервера приложений и сам фреймворк должен быть готов к работе в таком постоянно запущенном режиме. В частности, как рассказал Фабьен, он серьёзно поработал над оптимизацией Symfony, чтобы устранить утечки памяти. Ещё он упомянул, что работает над сервером приложений для PHP, который будет написан на Go. Этот момент меня заинтересовал, но погуглив, я ничего такого не нашел. Кто-нибудь в курсе этой истории? Если сам что-то узнаю, то обязательно расскажу в одном из следующих выпусков.

В дополнение поделюсь хорошей статьёй по теме многопоточного программирования на PHP с помощью расширения pthreads.

Кстати, что вы вообще думаете по этому поводу — стоит ли вкладываться в изучение и применять на практике многопоточное и асинхронное программирование в PHP или писать демонов на PHP? С одной стороны, мы продолжаем использовать привычную экосистему и можем переиспользовать код бизнес логики, который у нас уже написан на PHP — это несомненный плюс. С другой стороны, всё это ощущается как экзотические трюки и костыли вокруг технологии, которая не была на это расчитана и имеет свои подводные камни, с которыми придётся бороться. А быть может стоит подождать поддержки асинхронного и многопоточного программирования в PHP из коробки в одном из следующих мажерных релизов? Даёшь PHPрутины! Итак, запускаю голосование в twitter (@5minphp) со следующим вопросом: «Если в большом PHP-проекте требуется многопоточность уже сегодня а) PHP — это хороший выбор б) лучше взять другой инструмент, применив (микро)сервисы».