По традиции, подведем итоги уходящего года и вспомним самые значимые события в мире PHP, которых, к счастью, было немало. И конечно же, подборка со ссылками на свежие материалы за последние две недели.
С наступающим Новым годом! Приятного чтения.
Уходящий год можно по праву назвать годом PHP 7. Несмотря на то что седьмая версия интерпретатора вышла в 2015, именно в этом году крупные компании перешли на PHP 7: Badoo, Tumblr, Dailymotion, WordPress.com, Etsy (сменили HHVM на PHP 7). Некоторые даже называли графики падения нагрузки на серверах после обновления не иначе как «php7 porn». В следующем году для фреймворков Laravel 5.5 и Symfony 4 минимальной версией станет PHP 7.
Конец года ознаменовался выпуском новой мажорной версии интерпретатора — PHP 7.1 с массой улучшений.
Параллельно шла работа и над следующей версией 7.2 и уже принят ряд RFC. Кроме того Дмитрий Стогов с командой ведут работу над реализацией JIT.
В этом году ветка PHP 5.5 получила свой последний релиз 5.5.38 и больше не поддерживается. А ветка 5.6 в следующие два года будет получать только обновления безопасности.
Альтернативные реализации PHP также остаются популярными. Известная HHVM получила LTS релиз. Кроме того появились Peachpie — компилятор PHP для .NET, и Tagua VM — виртуальная машина на Rust.
Группа PHP-FIG, хоть и переживала некоторый кризис, была реформирована по плану PHP-FIG 3.0. А также выпустила в свет ряд новых стандартов:
- PSR-13: Link definition interfaces — принят
- PSR-11 Container Interface — в ревью
- PSR-14 Event Manager — черновик
- PSR-15 HTTP Middlewares — черновик
- PSR-16: Simple Cache — черновик
- PSR-17 HTTP Factories — черновик
А также в рамках Interoperability инициатив развиваются стандарты по более узким направлениям:
- Asynchronous Interoperability
- Container Interoperability
- Configuration Interoperability
- Framework Interoperability
- Event Bus Interoperability
Популярный фреймворк в этом году обозначился последним релизом в ветке 1.1 — Yii 1.1.17. И целым рядом обновлений актуальной второй версии фреймворка: 2.0.7, 2.0.8, 2.0.9, 2.0.10. Активно планируется версия 2.1, и начата работа в соответствующей ветке.
К core-команде присоединился @dynasource. Запущен новый yiiframework.ru. Yii получил награду Tagline как лучший backend-фреймворк. Была опубликована книга с рецептами по Yii 2 — Yii 2 Application Development Cookbook. А также в этом году прошли конференция в Киеве и первый Хакатон по Yii.
В этом году фреймворку Symfony 2 исполнилось 5 лет. А тем временем свет увидело целых 2 релиза: фреймворка Symfony 3.1.0 и Symfony 3.2.0. Пакеты Symfony были загружены уже более 500 миллионов раз.
Фреймворку исполнилось 5 лет. В середине года вышел релиз Laravel 5.3. А также доступен план выхода ближайших версий, согласно которому 5.4 выйдет уже в начале следующего года, a 5.5 станет LTS версией и ожидается в июле 2017.
В этом году активно развивались платные продукты из экосистемы Laravel: Forge, Spark, Envoyer.
Уходящий год ознаменовался долгожданным релизом Zend Framework 3, работа над которым длилась почти 4 года. Репозиторий фреймворка был переименован из zf2 в zendframework. По фреймворку доступна книга, в том числе на русском. В это же время было объявлено о завершении поддержки Zend Framework 1. А также свет увидел Zend Expressive — микрофреймворк для создания веб-приложения на основе PSR-7 middleware.
Среди других событий уходящего года следует выделить:
- Composer 1.0.0 — Первый стабильный релиз Composer
- Phalcon 3.0.0 — LTS релиз популярного PECL-фреймворка
- Go! AOP Framework 1.0.0, 2.0.0
- Энди Гутманс покинул Zend
- 15 лет проекту Drupal
А что бы вы выделили еще? Пишите в комментариях к посту!
Новости и релизы
- Приватный Packagist — Представлен packagist.com — корпоративное SaaS решение для использования приватных зависимостей взамен Satis и Toran Proxy.
- Phalcon 3.0.3
PHP
- RFC: Class-like Primitive Types — Черновик предложения по реализации квазиобъектного поведения для примитивных типов. При этом их внутреннее представление не изменится и расширять их невозможно, но будет доступно использование
instanceof
, а в будущем — реализация общих предков, например,Number
дляfloat
иint
. - RFC: Server-Side Request and Response Objects — Предлагается включить в ядро анонсированное совсем недавно расширение request, которое добавляет объекты Request и Response взамен суперглобальным массивам.
- RFC: Debugging PDO Prepared Statement Emulation v2 — Принято предложение по эмуляции подготовленных выражений непосредственно в PHP для удобства отладки.
Инструменты
- pbudzon/dhcp-php — Реализация DHCP-сервера на PHP. Пост и видео демо в поддержку от автора.
- clue/php-commander — Инструмент для создания простых консольных приложений с лаконичным интерфейсом.
- PHP API Clients — Организация в рамках которой реализовываются асинхронные клиенты для различных сервисов.
- naneau/php-obfuscator — Обфускатор для PHP, который парсит код и подменяет имена переменных и т.п.
- frickelbruder/kickoff — Инструмент проверяет некоторые SEO-параметры сайта и предназначен для использования в CI.
- mgp25/Instagram-API — Библиотека реализует скрытые в официальном API возможности Instagram.
Материалы для обучения
-
Symfony
- Symfony: миф о раздутом фреймворке
- Неделя Symfony #520 (12-18 декабря 2016)
- Неделя Symfony #521 (19-25 декабря 2016)
- Symfony — комбинируем GridFS файлы с ORM сущностями
-
Yii
- Разработка на Yii 2: Роутинг и создание URL
- tuyakhov/yii2-json-api — Реализация спецификации JSON API для Yii 2.
- Yii2 RESTful API-интерфейс для AngularJS
- Yii2-advanced: Делаем интернационализацию с источником в Redis
- Виджет мультиязычности в YII2 без использования базы данных
- Пример создания практичной Debug панели в Yii
-
Laravel
- Масштабируем Laravel с помощью AWS Elastic Beanstalk
- Создание веб-приложения на PHP с иcпользованием Firebird и Laravel
- Полиморфные связи в Eloquent
- Пример реализации логин-ссылки без пароля на Laravel
- Оптимизация производительности PHP благодаря использованию полного обозначения функций — Исследование о том, почему вызов глобальных функций
foo()
быстрее чемfoo()
. Также доступен инструмент roave/functionfqnreplacer, который просканирует исходники и добавит слэш где необходимо. - pds/skeleton — Рекомендация по структуре PHP пакета.
- Предотвратить запуск PHP-скрипта несколько раз одновременно — О реализации блокировки.
- Наследование vs композиция и принцип открытости/закрытости SOLID
- Улучшаем тесты: ожидание vs реализация
- Семантическая подсветка переменных в PhpStorm 2016.3
- Оптимизация рекурсивных алгоритмов с помощью trampoline
- Все, что вы знаете о шифровании с открытым ключом в PHP — неверно
- Об уязвимостях (в том числе PHP) в мультимедиа модулях самолетов
- PHP модуль на C++
- Как не нужно использовать паттерн Repository
- Alameda, Bower и NPM интеграция в CleverStyle Framework
- Масштабирование ClickHouse, управление миграциями и отправка запросов из PHP в кластер
- Как мы уже 4 года выживаем в условиях двух релизов в день
- Улучшение производительности PHP 7
Аудио и видеоматериалы
- PHP подкаст #13
- Видеообзор PHP 7.1
- PHP Roundtable Podcast #057: Все о компании Zend
- Abusing PHP 7’s OPcache to Spawn Webshells
Занимательное
Спасибо за внимание и еще раз с наступающим Новым годом! Пусть он будет для вас лучше чем два предыдущих в сумме!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Быстрый поиск по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 98
Автор: Zfort Group