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


    По традиции, подведем итоги уходящего года и вспомним самые значимые события в мире 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

    Zfort Group
    112,00
    Компания
    Поделиться публикацией

    Комментарии 20

      +2
      Еще Yii 1.1.18 должен быть.
        0
        Спасибо, поправил текст
          0

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

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

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

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

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


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

            +2

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

              +4

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

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

              лучше бы каноническую реализацию psr7 добавили в ядро, чем обертку над глобальными переменными
                0
                Вышел релиз фреймворка toKernel версии 2. А ещё они готовят cmf на его основе.
                  +5

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

                    +1

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

                      0
                      Остается пожелать Yii2 скорый переход на PHP7, пользуясь случаем.
                        +1
                        а что вам не хватает для запуска yii2 на php7? совместимость 100%.
                          0
                          Читаю дайджесты, что поменялось в PHP7, делаю вывод — этого не достаточно!
                          И вот, в самом начале этой статьи:
                          В следующем году для фреймворков Laravel 5.5 и Symfony 4 минимальной версией станет PHP 7.

                          Это как Yii1 работает на PHP5.6, но если сравнить код который был написан на php5.3, безусловно разница есть.
                            +1
                            Читаю дайджесты, что поменялось в PHP7, делаю вывод — этого не достаточно!


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

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


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

                              Тем паче!

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

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

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

                    0
                    Предотвратить запуск PHP-скрипта несколько раз одновременно — О реализации блокировки.

                    Лучше использовать GET_LOCK (там где есть mysql). ;)

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

                    Самое читаемое