- PVSM.RU - https://www.pvsm.ru -

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

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

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

PHP
Уходящий год можно по праву назвать годом PHP 7. Несмотря на то что седьмая версия интерпретатора вышла в 2015, именно в этом году крупные компании перешли на PHP 7: Badoo [1], Tumblr [2], Dailymotion [3], WordPress.com [4], Etsy [5] (сменили HHVM на PHP 7). Некоторые даже называли графики падения нагрузки на серверах после обновления не иначе как «php7 porn». В следующем году для фреймворков Laravel 5.5 [6] и Symfony 4 [7] минимальной версией станет PHP 7.
Конец года ознаменовался выпуском новой мажорной версии интерпретатора — PHP 7.1 [8] с массой улучшений [9].
Параллельно шла работа и над следующей версией 7.2 и уже принят ряд RFC [10]. Кроме того Дмитрий Стогов с командой ведут работу над реализацией JIT [11].

В этом году ветка PHP 5.5 получила свой последний релиз 5.5.38 [12] и больше не поддерживается. А ветка 5.6 в следующие два года будет получать только обновления безопасности [13].
Альтернативные реализации PHP также остаются популярными. Известная HHVM получила LTS релиз [14]. Кроме того появились Peachpie [15] — компилятор PHP для .NET, и Tagua VM [16] — виртуальная машина на Rust.

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

А также в рамках Interoperability инициатив развиваются стандарты по более узким направлениям:

yii framework
Популярный фреймворк в этом году обозначился последним релизом в ветке 1.1 — Yii 1.1.17 [30]. И целым рядом обновлений актуальной второй версии фреймворка: 2.0.7 [31], 2.0.8 [32], 2.0.9 [33], 2.0.10 [34]. Активно планируется версия 2.1 [35], и начата работа в соответствующей ветке.
К core-команде присоединился @dynasource [36]. Запущен новый yiiframework.ru [37]. Yii получил награду Tagline [38] как лучший backend-фреймворк. Была опубликована книга с рецептами по Yii 2 — Yii 2 Application Development Cookbook [39]. А также в этом году прошли конференция в Киеве [40] и первый Хакатон по Yii [41].

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

laravel
Фреймворку исполнилось 5 лет [46]. В середине года вышел релиз Laravel 5.3 [47]. А также доступен план выхода ближайших версий [48], согласно которому 5.4 выйдет уже в начале следующего года, a 5.5 станет LTS версией и ожидается в июле 2017.
В этом году активно развивались платные продукты из экосистемы Laravel: Forge [49], Spark [50], Envoyer [51].

zend framework
Уходящий год ознаменовался долгожданным релизом Zend Framework 3 [52], работа над которым длилась почти 4 года. Репозиторий фреймворка был переименован [53] из zf2 в zendframework. По фреймворку доступна книга [54], в том числе на русском. В это же время было объявлено о завершении поддержки Zend Framework 1 [55]. А также свет увидел Zend Expressive [56] — микрофреймворк для создания веб-приложения на основе PSR-7 middleware.

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

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

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

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

  • RFC: Class-like Primitive Types [68] — Черновик предложения по реализации квазиобъектного поведения для примитивных типов. При этом их внутреннее представление не изменится и расширять их невозможно, но будет доступно использование instanceof, а в будущем — реализация общих предков, например, Number для float и int.
  • RFC: Server-Side Request and Response Objects [69] — Предлагается включить в ядро анонсированное совсем недавно расширение request [70], которое добавляет объекты Request и Response взамен суперглобальным массивам.
  • RFC: Debugging PDO Prepared Statement Emulation v2 [71] — Принято предложение по эмуляции подготовленных выражений непосредственно в PHP для удобства отладки.

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

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

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

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

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

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

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

Прислать ссылку [118]
Быстрый поиск по всем дайджестам [119]
Предыдущий выпуск: PHP-Дайджест № 98 [120]

Автор: Zfort Group

Источник [121]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/225532

Ссылки в тексте:

[1] Badoo: https://habrahabr.ru/company/badoo/blog/279047/

[2] Tumblr: https://engineering.tumblr.com/post/152998126990/php-7-at-tumblr

[3] Dailymotion: http://engineering.dailymotion.com/php-7-deployment-at-dailymotion/

[4] WordPress.com: https://twitter.com/WordCampUS/status/805164029371158528

[5] Etsy: https://speakerdeck.com/wcgallego/hitting-the-turbo-button-upgrading-to-php-7-at-etsy-1

[6] Laravel 5.5: https://twitter.com/taylorotwell/status/809767371774816256

[7] Symfony 4: https://twitter.com/fabpot/status/809743412715016192

[8] PHP 7.1: http://php.net/archive/2016.php#id2016-12-01-3

[9] массой улучшений: https://wiki.php.net/rfc#php_71

[10] ряд RFC: https://wiki.php.net/rfc#php_next_72

[11] ведут работу над реализацией JIT: http://news.php.net/php.internals/95531

[12] 5.5.38: http://php.net/archive/2016.php#id2016-07-21-2

[13] только обновления безопасности: http://php.net/supported-versions.php

[14] LTS релиз: http://hhvm.com/blog/11711/hhvm-3-15

[15] Peachpie: http://www.peachpie.io/

[16] Tagua VM: https://github.com/tagua-vm/tagua-vm

[17] кризис: https://groups.google.com/forum/#!topic/php-fig/e9qZue8nZXM

[18] PHP-FIG 3.0: https://medium.com/@michaelcullumuk/fig-3-0-91dbfd21c93b#.rmshx47vc

[19] PSR-13: Link definition interfaces — принят: http://www.php-fig.org/psr/psr-13/

[20] PSR-11 Container Interface — в ревью: https://github.com/container-interop/fig-standards/blob/master/proposed/container.md

[21] PSR-14 Event Manager — черновик: https://github.com/php-fig/fig-standards/blob/master/proposed/event-manager.md

[22] PSR-15 HTTP Middlewares — черновик: https://github.com/php-fig/fig-standards/blob/master/proposed/http-middleware/middleware.md

[23] PSR-16: Simple Cache — черновик: https://github.com/php-fig/fig-standards/blob/master/proposed/simplecache.md

[24] PSR-17 HTTP Factories — черновик: https://github.com/php-fig/fig-standards/blob/master/proposed/http-factory/http-factory.md

[25] Asynchronous Interoperability: https://github.com/async-interop

[26] Container Interoperability: https://github.com/container-interop

[27] Configuration Interoperability: https://github.com/config-interop

[28] Framework Interoperability: https://github.com/framework-interop

[29] Event Bus Interoperability: https://github.com/php-eventbus-interop

[30] Yii 1.1.17: https://habrahabr.ru/post/275065/

[31] 2.0.7: https://habrahabr.ru/post/277201/

[32] 2.0.8: https://habrahabr.ru/post/282724/

[33] 2.0.9: https://habrahabr.ru/post/305432/

[34] 2.0.10: https://habrahabr.ru/post/313180/

[35] планируется версия 2.1: https://github.com/yiisoft/yii2/wiki/Plan-for-next-major-versions

[36] присоединился @dynasource: http://rmcreative.ru/blog/post/dynasource-prisoedinilsja-k-yii

[37] yiiframework.ru: https://yiiframework.ru

[38] награду Tagline: http://yiiframework.ru/news/122/yii-polucil-nagradu-tagline-kak-lucsij-backend-frejmvork

[39] Yii 2 Application Development Cookbook: https://www.packtpub.com/web-development/yii2-application-development-cookbook-third-edition

[40] конференция в Киеве: http://rmcreative.ru/blog/post/yii-2-conference-2016--otchjot-i-materialy

[41] первый Хакатон по Yii: https://habrahabr.ru/post/304092/

[42] Symfony 2 исполнилось 5 лет: http://symfony.com/blog/symfony-2-0

[43] Symfony 3.1.0: http://symfony.com/blog/symfony-3-1-0-released

[44] Symfony 3.2.0: http://symfony.com/blog/symfony-3-2-0-released

[45] более 500 миллионов раз: http://symfony.com/blog/symfony-reaches-500-million-downloads

[46] исполнилось 5 лет: https://laravel-news.com/laravel-turns-five

[47] Laravel 5.3: https://habrahabr.ru/post/308380/

[48] план выхода ближайших версий: https://laravel-news.com/laravel-release-process

[49] Forge: https://forge.laravel.com/

[50] Spark: https://spark.laravel.com/

[51] Envoyer: https://envoyer.io/

[52] Zend Framework 3: https://framework.zend.com/blog/2016-06-28-zend-framework-3.html

[53] был переименован: https://framework.zend.com/blog/2016-05-03-zf-repo-rename.html

[54] книга: https://olegkrivtsov.github.io/using-zend-framework-3-book/html/

[55] Zend Framework 1: https://framework.zend.com/blog/2016-06-28-zf1-eol.html

[56] Zend Expressive: https://framework.zend.com/blog/2016-01-28-expressive-1.0-stable.html

[57] Composer 1.0.0: https://seld.be/notes/composer-goes-gold

[58] Phalcon 3.0.0: https://blog.phalconphp.com/post/phalcon-3-0-0-released

[59] Go! AOP Framework 1.0.0: https://github.com/goaop/framework/releases/tag/1.0.0

[60] 2.0.0: https://github.com/goaop/framework/releases/tag/2.0.0

[61] Энди Гутманс покинул Zend: https://andigutmans.com/2016/02/24/starting-a-new-journey/

[62] 15 лет проекту Drupal: https://www.drupal.org/news/drupal-15-years-old-and-still-gaining-momentum

[63] Приватный Packagist: https://medium.com/packagist/introducing-private-packagist-492553d10660#.l26apu3br

[64] packagist.com: https://packagist.com/

[65] Satis: https://github.com/composer/satis

[66] Toran Proxy: https://toranproxy.com/

[67] Phalcon 3.0.3: https://blog.phalconphp.com/post/phalcon-3-0-3-released-and-merry-christmas

[68] RFC: Class-like Primitive Types: https://wiki.php.net/rfc/class-like_primitive_types

[69] RFC: Server-Side Request and Response Objects: https://wiki.php.net/rfc/request_response

[70] request: https://pecl.php.net/package/request

[71] RFC: Debugging PDO Prepared Statement Emulation v2: https://wiki.php.net/rfc/debugging_pdo_prepared_statement_emulation_v2

[72] pbudzon/dhcp-php: https://github.com/pbudzon/dhcp-php

[73] Пост: https://mysteriouscode.io/blog/dhcp-implementation-in-php/

[74] видео демо: https://vimeo.com/195208678

[75] clue/php-commander: https://github.com/clue/php-commander

[76] PHP API Clients: https://blog.wyrihaximus.net/2016/12/announcing-php-api-clients/

[77] naneau/php-obfuscator: https://github.com/naneau/php-obfuscator

[78] frickelbruder/kickoff: https://github.com/frickelbruder/kickoff

[79] mgp25/Instagram-API: https://github.com/mgp25/Instagram-API

[80] Symfony: миф о раздутом фреймворке: http://matmati.net/symfony-myth-bloated-framework/

[81] Неделя Symfony #520 (12-18 декабря 2016): http://symfony.com/blog/a-week-of-symfony-520-12-18-december-2016

[82] Неделя Symfony #521 (19-25 декабря 2016): http://symfony.com/blog/a-week-of-symfony-521-19-25-december-2016

[83] Symfony — комбинируем GridFS файлы с ORM сущностями: https://habrahabr.ru/post/314966/

[84] Разработка на Yii 2: Роутинг и создание URL: https://code.tutsplus.com/tutorials/programming-with-yii2-routing-and-url-creation--cms-26869

[85] tuyakhov/yii2-json-api: https://github.com/tuyakhov/yii2-json-api

[86] Yii2 RESTful API-интерфейс для AngularJS: https://habrahabr.ru/post/318242/

[87] Yii2-advanced: Делаем интернационализацию с источником в Redis: https://habrahabr.ru/post/318102/

[88] Виджет мультиязычности в YII2 без использования базы данных: https://habrahabr.ru/post/317828/

[89] Пример создания практичной Debug панели в Yii: https://habrahabr.ru/post/317562/

[90] Масштабируем Laravel с помощью AWS Elastic Beanstalk: https://deliciousbrains.com/scaling-laravel-using-aws-elastic-beanstalk-part-2-setting-up-vpc-rds-elasticache/

[91] Создание веб-приложения на PHP с иcпользованием Firebird и Laravel: https://habrahabr.ru/post/317458/

[92] Полиморфные связи в Eloquent: https://www.sitepoint.com/what-are-polymorphic-relations-and-how-do-we-use-them-with-eloquent/

[93] Пример реализации логин-ссылки без пароля на Laravel: https://www.sitepoint.com/lets-kill-the-password-magic-login-links-to-the-rescue/

[94] Оптимизация производительности PHP благодаря использованию полного обозначения функций: http://veewee.github.io/blog/optimizing-php-performance-by-fq-function-calls/

[95] roave/functionfqnreplacer: https://github.com/roave/functionfqnreplacer

[96] pds/skeleton: https://github.com/php-pds/skeleton

[97] Предотвратить запуск PHP-скрипта несколько раз одновременно: https://www.exakat.io/prevent-multiple-php-scripts-at-the-same-time/

[98] Наследование vs композиция и принцип открытости/закрытости SOLID: http://patrick.louys.ch/2016/12/11/open-closed-principle/

[99] Улучшаем тесты: ожидание vs реализация: http://codeception.com/12-21-2016/writing-better-tests-expectation-vs-implementation.html

[100] Семантическая подсветка переменных в PhpStorm 2016.3: https://blog.jetbrains.com/phpstorm/2016/12/semantic-variable-colours-new-in-phpstorm-2016-3/

[101] Оптимизация рекурсивных алгоритмов с помощью trampoline: http://brylkowski.com/php-cant-jump-thing-about-recursion/

[102] Все, что вы знаете о шифровании с открытым ключом в PHP — неверно: https://paragonie.com/blog/2016/12/everything-you-know-about-public-key-encryption-in-php-is-wrong

[103] Об уязвимостях (в том числе PHP) в мультимедиа модулях самолетов: http://blog.ioactive.com/2016/12/in-flight-hacking-system.html

[104] PHP модуль на C++: http://blog.knock-it.ru/post/cpp-php-extension/

[105] Как не нужно использовать паттерн Repository: https://habrahabr.ru/post/316836/

[106] Alameda, Bower и NPM интеграция в CleverStyle Framework: https://habrahabr.ru/post/317894/

[107] Масштабирование ClickHouse, управление миграциями и отправка запросов из PHP в кластер: https://habrahabr.ru/company/smi2/blog/317682/

[108] Как мы уже 4 года выживаем в условиях двух релизов в день: https://habrahabr.ru/company/badoo/blog/317700/

[109] Улучшение производительности PHP 7: https://habrahabr.ru/company/mailru/blog/318008/

[110] PHP подкаст #13: http://podcast.ostretsov.ru/2016/12/19/php-podcast-13/

[111] Видеообзор PHP 7.1: https://nomadphp.com/php-7-1-10-minutes/

[112] PHP Roundtable Podcast #057: Все о компании Zend: https://www.phproundtable.com/episode/all-things-zend-framework-apigility-certification

[113] Abusing PHP 7’s OPcache to Spawn Webshells: https://www.youtube.com/watch?v=yLpsIWh7rvU

[114] Спроси backend-разработчиков Badoo. Часть 1. Платформа: https://habrahabr.ru/company/badoo/blog/317442/

[115] личку: https://habrahabr.ru/conversations/pronskiy/

[116] почту: mailto:roman@pronskiy.com

[117] твиттер: https://twitter.com/pronskiy

[118] Прислать ссылку: https://bit.ly/php-digest-add-link

[119] Быстрый поиск по всем дайджестам: https://pronskiy.com/php-digest/

[120] Предыдущий выпуск: PHP-Дайджест № 98: https://habrahabr.ru/company/zfort/blog/317366/

[121] Источник: https://habrahabr.ru/post/318410/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best