По традиции, подведем итоги уходящего года и вспомним самые значимые события в мире 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 в следующие два года будет получать только обновления безопасности.
Альтернативные реализации PHP также остаются популярными. Известная HHVM получила LTS релиз. Кроме того появились Peachpie — компилятор PHP для .NET, и Tagua VM — виртуальная машина на Rust.

PSR
Группа PHP-FIG, хоть и переживала некоторый кризис, была реформирована по плану PHP-FIG 3.0. А также выпустила в свет ряд новых стандартов:


А также в рамках 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.

Среди других событий уходящего года следует выделить:


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

Новости и релизы



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.

Материалы для обучения



Аудио и видеоматериалы



Занимательное



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

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

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

Поделиться с друзьями
-->

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


  1. xoma
    26.12.2016 00:44
    +2

    Еще Yii 1.1.18 должен быть.


    1. pronskiy
      26.12.2016 00:47

      Спасибо, поправил текст


    1. SamDark
      26.12.2016 19:49

      Обязательно будет.


  1. Gemorroj
    26.12.2016 00:59
    +2

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


    1. Fesor
      26.12.2016 12:26
      +1

      ну как бы да, хотя если холивар echo vs print полностью утратил свою актуальность (потому что нынче модно делать echo ровно один раз вместо того чтобы отдавать кусками, а шаблонизаторы и так компилятся с учетом микрооптимизаций), то функции мы всеравно вызываем. И как минимум полезно знать о том, почему один вариант медленнее другого. Будете вы с этим делать чего или нет — дело ваше. Речь тут идет о профите порядка 1% а то и меньше.


      1. Gemorroj
        26.12.2016 14:58

        так-то да, хотя я думаю, что opcache должен оптимизировать этот момент.


        1. Fesor
          26.12.2016 18:17
          +2

          что opcache должен оптимизировать этот момент.

          Увы нет. Вся суть проблемы заключается в том, что PHP язык динамический. А значит мы можем в рантайме создавать функции. И например мы один раз вызываем функцию, и она вызывается из глобальной области видимости. А потом происходит магия и вот функция вызывается уже из другой области видимости. И интерпретатору приходится это учитывать и постоянно проверять кого вызывать. Причем происходит это на этапе выполнения опкодов, так что opcache тут уже ничем не поможет (просто потому что он уже отработал и эта проверка записана в кэше опкодов).


          В теории может помочь JIT но проще тупо добавлять слэш и явно указывать из какого неймспейса вызывается функция. Для JIT есть куда более существенные места для оптимизаций.


  1. Elfet
    26.12.2016 08:27
    +2

    Ещё новый релиз deployer-а 4.0.0. Год разработки.


    1. zvirusz
      26.12.2016 09:46
      +4

      Рассказали про тебя в 97 выпуске, всё ок, Антон :)


  1. zelenin
    26.12.2016 09:48
    +2

    RFC: Server-Side Request and Response Objects — Предлагается включить в ядро анонсированное совсем недавно расширение request, которое добавляет объекты Request и Response взамен суперглобальным массивам.

    лучше бы каноническую реализацию psr7 добавили в ядро, чем обертку над глобальными переменными


  1. aslanalexander
    26.12.2016 13:23

    Вышел релиз фреймворка toKernel версии 2. А ещё они готовят cmf на его основе.


    1. Fesor
      26.12.2016 14:35
      +5

      3 звездочки у версии 1.x и 0 звездочек у версии 2.x… нет composer… нет комьюнити… внутри статика и сингелтоны… А потому у меня вопрос, кому это может быть интересно и каков профит от монолитного фреймворка в 2017-ом году?


      1. SamDark
        26.12.2016 19:51
        +1

        Ну, профит-то есть. Вон Yii 2.0 нормально идёт для многих задач. А вот про интерес… это да. Не модно.


        1. Skit25
          27.12.2016 22:58

          Остается пожелать Yii2 скорый переход на PHP7, пользуясь случаем.


          1. zelenin
            28.12.2016 08:53
            +1

            а что вам не хватает для запуска yii2 на php7? совместимость 100%.


            1. Skit25
              28.12.2016 18:11

              Читаю дайджесты, что поменялось в PHP7, делаю вывод — этого не достаточно!
              И вот, в самом начале этой статьи:

              В следующем году для фреймворков Laravel 5.5 и Symfony 4 минимальной версией станет PHP 7.

              Это как Yii1 работает на PHP5.6, но если сравнить код который был написан на php5.3, безусловно разница есть.


              1. zelenin
                28.12.2016 18:17
                +1

                Читаю дайджесты, что поменялось в PHP7, делаю вывод — этого не достаточно!


                ну синтаксический сахар не используется в ядре, но вы его можете использовать в своем приложении.

                Это как Yii1 работает на PHP5.6, но если сравнить код который был написан на php5.3, безусловно разница есть.


                5.3 => 5.6 нельзя сравнить с 5.6 => 7


                1. Skit25
                  28.12.2016 18:21
                  +1

                  5.3 => 5.6 нельзя сравнить с 5.6 => 7

                  Тем паче!

                  На днях включу семерку на сервере, а то из-за не уверенности не стал использовать с Yii2.
                  Спасибо!


              1. Fesor
                28.12.2016 20:26

                что поменялось в PHP7, делаю вывод — этого не достаточно!

                прирост производительности в два раза и снижение расходов на память в три раза. Как по мне этого уже должно быть достаточно. Все остальное самому фреймворку не сильно поможет.