PHP-Дайджест № 99 – итоги 2016 года и подборка интересных ссылок (11 – 25 декабря 2016)

6e50cd56a97d10fe97780cc50be9513d.gif

По традиции, подведем итоги уходящего года и вспомним самые значимые события в мире PHP, которых, к счастью, было немало. И конечно же, подборка со ссылками на свежие материалы за последние две недели.

С наступающим Новым годом! Приятного чтения.

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 в следующие два года будет получать только обновления безопасности.

PSR Альтернативные реализации 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

yii framework

Популярный фреймворк в этом году обозначился последним релизом включающим улучшения в ветке 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

В этом году фреймворку Symfony 2 исполнилось 5 лет. А тем временем свет увидело целых 2 релиза: фреймворка Symfony 3.1.0 и Symfony 3.2.0. Пакеты Symfony были загружены уже более 500 миллионов раз.

laravel

Фреймворку исполнилось 5 лет. В середине года вышел релиз Laravel 5.3. А также доступен план выхода ближайших версий, согласно которому 5.4 выйдет уже в начале следующего года, a 5.5 станет LTS версией и ожидается в июле 2017.

В этом году активно развивались платные продукты из экосистемы Laravel: Forge, Spark, Envoyer.

zend framework

Уходящий год ознаменовался долгожданным релизом 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

А что бы вы выделили еще? Пишите в комментариях к посту!

f574e9991c42407b8fa789a66b854f8d.png Новости и релизы


  • Приватный Packagist — Представлен packagist.com — корпоративное SaaS решение для использования приватных зависимостей взамен Satis и Toran Proxy.
  • Phalcon 3.0.3

c9ee7880391644e4aef6cc28ca681ab0.png 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 для удобства отладки.

cf862d9072784d04b621238ec137f2ca.png Инструменты


  • pbudzon/dhcp-php — Реализация DHCP-сервера на PHP. Пост и видео демо в поддержку от автора.
  • clue/php-commander — Инструмент для создания простых консольных приложений с лаконичным интерфейсом.
  • PHP API Clients — Организация в рамках которой реализовываются асинхронные клиенты для различных сервисов.
  • naneau/php-obfuscator — Обфускатор для PHP, который парсит код и подменяет имена переменных и т.п.
  • frickelbruder/kickoff — Инструмент проверяет некоторые SEO-параметры сайта и предназначен для использования в CI.
  • mgp25/Instagram-API — Библиотека реализует скрытые в официальном API возможности Instagram.

329bec7c1e914963a1c5d2f2bfe99995.png Материалы для обучения


  • Symfony
    • Symfony: миф о раздутом фреймворке
    • Неделя Symfony #520 (12–18 декабря 2016)
    • Неделя Symfony #521 (19–25 декабря 2016)
    • habrSymfony — комбинируем GridFS файлы с ORM сущностями

  • Yii
    • Разработка на Yii 2: Роутинг и создание URL
    • tuyakhov/yii2-json-api — Реализация спецификации JSON API для Yii 2.
    • habrYii2 RESTful API-интерфейс для AngularJS
    • habrYii2-advanced: Делаем интернационализацию с источником в Redis
    • habrВиджет мультиязычности в YII2 без использования базы данных
    • habrПример создания практичной Debug панели в Yii

  • Laravel
    • Масштабируем Laravel с помощью AWS Elastic Beanstalk
    • habrСоздание веб-приложения на PHP с иcпользованием Firebird и Laravel
    • Полиморфные связи в Eloquent
    • Пример реализации логин-ссылки без пароля на Laravel

  • Оптимизация производительности PHP благодаря использованию полного обозначения функций — Исследование о том, почему вызов глобальных функций \foo() быстрее чем foo(). Также доступен инструмент roave/functionfqnreplacer, который просканирует исходники и добавит слэш где необходимо.
  • pds/skeleton — Рекомендация по структуре PHP пакета.
  • Предотвратить запуск PHP-скрипта несколько раз одновременно — О реализации блокировки.
  • Наследование vs композиция и принцип открытости/закрытости SOLID
  • Улучшаем тесты: ожидание vs реализация
  • Семантическая подсветка переменных в PhpStorm 2016.3
  • Оптимизация рекурсивных алгоритмов с помощью trampoline
  • Все, что вы знаете о шифровании с открытым ключом в PHP — неверно
  • Об уязвимостях (в том числе PHP) в мультимедиа модулях самолетов
  • ruPHP модуль на C++
  • habrКак не нужно использовать паттерн Repository
  • habrAlameda, Bower и NPM интеграция в CleverStyle Framework
  • habrМасштабирование ClickHouse, управление миграциями и отправка запросов из PHP в кластер
  • habrКак мы уже 4 года выживаем в условиях двух релизов в день
  • habrУлучшение производительности PHP 7

8dcc236774104f8286a40ceaea553820.png Аудио и видеоматериалы


  • ruPHP подкаст #13
  • videoВидеообзор PHP 7.1
  • videoPHP Roundtable Podcast #057: Все о компании Zend
  • videoAbusing PHP 7«s OPcache to Spawn Webshells

cc24d9c95c9841988f8299a8b285e6f6.png Занимательное


  • Спроси backend-разработчиков Badoo. Часть 1. Платформа

Спасибо за внимание и еще раз с наступающим Новым годом! Пусть он будет для вас лучше чем два предыдущих в сумме!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку. Вопросы и предложения пишите на почту или в твиттер.

» Прислать ссылку
» Быстрый поиск по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 98

Комментарии (3)

  • 26 декабря 2016 в 00:44

    +1

    Еще Yii 1.1.18 должен быть.
    • 26 декабря 2016 в 00:47

      0

      Спасибо, поправил текст
  • 26 декабря 2016 в 00:59

    0

    >> \foo () быстрее чем foo ()
    это из разряда подзабытого спора echo vs print =)

© Habrahabr.ru