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

PHP-Дайджест № 146 (10 – 24 декабря 2018) + Итоги 2018 года

PHP-Дайджест № 146 (10 – 24 декабря 2018) + Итоги 2018 года - 1

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

Под катом вас также ждет розыгрыш [1] лицензий на PhpStorm [2] от JetBrains [3].

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

PHP

Одним из главных событий уходящего года, конечно же, является мажорный релиз интерпретатора PHP 7.3.0 [4]. Вот уже седьмой год подряд команда доставляет свежую версию без задержек.
Был выпущен последний релиз [5] ветки PHP 5.6, и хотелось бы сказать, что ушла эпоха PHP 5, но значительная часть [6] сайтов все еще использует PHP <= 5.6.
Один из основателей компании Zend Зеев Сураски поделился планами на PHP 8 [7], среди которых были обозначены JIT, асинхронные возможности, FFI, и предзагрузка. Предзагрузка [8] уже реализована и будет в следующей версии, а вот FFI [9] хоть и реализована, но пока находится в голосовании и может быть отложена. И конечно, хочется вспомнить принятый RFC по типизированным свойствам [10]!
В октябре, однако, Зеев объявил [11] о том, что он сам и команда Zend в лице Дмитрия Стогова, Enrico Zimuel и Matthew Weier O'Phinney в скором времени покинут Rogue Wave (владеет Zend). Будем ждать новостей о дальнейшей судьбе команды в следующем году.

PSR

За 2018 год группой принято несколько стандартов:
PSR-15 [12]: HTTP Server Request Handlers
PSR-17 [13]: HTTP Factories
PSR-18 [14]: HTTP Client

А также ряд стандартов находятся в разработке:
PSR-5 [15]: PHPDoc
PSR-12 [16]: Extended Coding Style Guide
PSR-14 [17]: Event Dispatcher

Нельзя не вспомнить и об уходе Symfony из PHP-FIG [18].

symfony

Выпущено два мажорных релиза Symfony 4.1 [19] и Symfony 4.2 [20]. Прекращена [21] поддержка микрофреймворка Silex, потому что Symfony 4 может быть использован как микрофреймворк. И свежая новость о создании независимой коммерческой компании Symfony [22], которая будет заниматься разработкой и поддержкой фреймворка, а также работать над платными продуктами вокруг него, например, Symfony Cloud [23].

laravel

Как и Symfony, фреймворк Laravel в 2018 году отметился двумя мажорными релизами Laravel 5.7 [24] и Laravel 5.6 [25]. И релизами пары новых инструментов от core-команды Telescope [26] и Nova [27]. Кстати, к команде присоединился [28] еще один фултайм разработчик Dries Vints.

yii framework

Кроме Yii 1.1.20 [29] и Yii 2.0.14 [30], 2.0.15 [31], свет увидел Yii 3.0.0 alpha 1 [32] Несмотря на сообщение Павла Климова о том, что Yii умирает [33], работа над третьей версией фреймворка активизировалась. К core-команде присоединился [34] новый участник Андрей Васильев [35], доступен обзор изменений в Yii 3.0 [36] и документ с планами [37].

async php

В мире асинхронного PHP было много интересного в уходящем году. Вышел ReactPHP 1.0.0 LTS [38], а также PHP-PM 1.0 [39]. Опубликованы книги «ReactPHP для начинающих» [40] и «Изучаем Асинхронный PHP с ReactPHP» [41]. Также активно развивается Amphp [42] и инструменты на его базе.
Опубликовано предложение [RFC] Fiber [43], а также расширение ext-async [44].
Отдельно хочется отметить Swoole [45], который из китайской поделки вырос в мощный инструмент и имеет интеграции для всех популярных фреймворков.

А что еще интересного произошло в уходящем году?


PHP-Дайджест № 146 (10 – 24 декабря 2018) + Итоги 2018 года - 8 Новости и релизы

  • HHVM 3.30 [46] — Последний релиз HHVM с поддержкой PHP.
  • Nextcloud 15 [47]Релиз [48] открытого аналога облачных хранилищ типа Dropbox.

PHP-Дайджест № 146 (10 – 24 декабря 2018) + Итоги 2018 года - 9 Инструменты

  • sebastianbergmann/foal [49] — Инструмент найдет те строки в PHP-коде, которые будут удалены оптимизатором OpCache байткода. В тему пост [50] том, почему Xdebug иногда не останавливается на брейкпоинтах.
  • jordanbrauer/unit-converter [51] — Конвертация различных единиц измерения.
  • danog/MadelineProto [52] — Клиент/сервер протокола Telegram MTProto. Позволяет взаимодействовать с Telegram без использования бот-API. Хабрапост [53] с примером получения списка сообщений.
  • PHP_CodeSniffer 3.4.0 [54]
  • paragonie/corner [55] — Пакет добавляет немного полезной информации в стандартные исключения и ошибки.
  • mmasiukevich/service-bus [56] — Фреймворк на базе Amphp для построения приложений с использованием паттернов Saga, CQRS, EventSourcing, Message Bus.

PHP-Дайджест № 146 (10 – 24 декабря 2018) + Итоги 2018 года - 10 Материалы для обучения


Новогодний розыгрыш

В комментариях к этому посту или в ретвите вот этого твита [91] ответьте на вопрос:

Какая у вас самая любимая фича PhpStorm?

Разыгрывается 3 годовых лицензии на PhpStorm! Два победителя будут выбраны случайно из числа тех, кто написал комментарий или ретвитнул с комментарием. И одну лицензию получит автор самого интересного/неочевидного на мой взгляд комментария.
Победители будут объявлены 27 декабря в 21:00 MSK.
Так какая же фича самая любимая у вас?


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

Больше новостей и комментариев в телеграм-канале PHP Digest [95].

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

Автор: Роман Пронский

Источник [99]


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

Путь до страницы источника: https://www.pvsm.ru/php-2/303150

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

[1] розыгрыш: https://habr.com/post/434128/#phpstorm

[2] PhpStorm: https://www.jetbrains.com/phpstorm/

[3] JetBrains: https://www.jetbrains.com/

[4] PHP 7.3.0: http://php.net/releases/7_3_0.php

[5] последний релиз: http://php.net/archive/2018.php#id2018-12-06-2

[6] значительная часть: https://w3techs.com/technologies/details/pl-php/5/all

[7] планами на PHP 8: https://habr.com/company/badoo/blog/415359/

[8] Предзагрузка: https://wiki.php.net/rfc/preload

[9] FFI: https://wiki.php.net/rfc/ffi

[10] RFC по типизированным свойствам: https://wiki.php.net/rfc/typed_properties_v2

[11] объявил: https://habr.com/post/426809/

[12] PSR-15: https://www.php-fig.org/psr/psr-15/

[13] PSR-17: https://www.php-fig.org/psr/psr-17/

[14] PSR-18: https://www.php-fig.org/psr/psr-18/

[15] PSR-5: https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc.md

[16] PSR-12: https://github.com/php-fig/fig-standards/blob/master/proposed/extended-coding-style-guide.md

[17] PSR-14: https://github.com/php-fig/fig-standards/blob/master/proposed/event-dispatcher.md

[18] уходе Symfony из PHP-FIG: https://www.php-fig.org/personnel/#former-member-projects

[19] Symfony 4.1: https://symfony.com/blog/symfony-4-1-0-released

[20] Symfony 4.2: https://symfony.com/blog/symfony-4-2-0-released

[21] Прекращена: https://symfony.com/blog/the-end-of-silex

[22] о создании независимой коммерческой компании Symfony: https://symfony.com/blog/a-business-model-for-symfony

[23] Symfony Cloud: https://symfony.com/cloud/

[24] Laravel 5.7: https://laravel.com/docs/5.7/releases#laravel-5.7

[25] Laravel 5.6: https://laravel.com/docs/5.6/releases#laravel-5.6

[26] Telescope: https://github.com/laravel/telescope

[27] Nova: https://nova.laravel.com/

[28] присоединился: https://medium.com/@taylorotwell/laravels-new-team-member-dries-vints-973edc98ecbe

[29] Yii 1.1.20: https://www.yiiframework.com/news/178/yii-1-1-20-is-released

[30] Yii 2.0.14: https://habr.com/post/349408/

[31] 2.0.15: https://habr.com/post/351652/

[32] Yii 3.0.0 alpha 1: https://github.com/yiisoft/yii2/releases/tag/3.0.0-alpha1

[33] Yii умирает: http://haru-atari.com/ru/blog/29/is-yii-dying

[34] присоединился: https://www.yiiframework.com/news/179/new-member-joining-yii-team-as-primary-yii-3-0-developer

[35] Андрей Васильев: https://github.com/hiqsol

[36] обзор изменений в Yii 3.0: https://github.com/yiisoft/yii-core/blob/master/UPGRADE.md

[37] документ с планами: https://github.com/yiisoft/yii-core/blob/master/ROADMAP.md

[38] ReactPHP 1.0.0 LTS: https://www.lueck.tv/2018/announcing-reactphp-lts

[39] PHP-PM 1.0: https://github.com/php-pm/php-pm/releases/tag/1.0.0

[40] «ReactPHP для начинающих»: https://leanpub.com/reactphp-for-beginners-ru

[41] «Изучаем Асинхронный PHP с ReactPHP»: https://leanpub.com/event-driven-php-ru

[42] Amphp: https://github.com/amphp

[43] [RFC] Fiber: https://wiki.php.net/rfc/fiber

[44] ext-async: https://github.com/concurrent-php/ext-async

[45] Swoole: https://github.com/swoole/swoole-src

[46] HHVM 3.30: https://hhvm.com/blog/2018/12/17/hhvm-3.30.html

[47] Nextcloud 15: https://github.com/nextcloud/server

[48] Релиз: https://nextcloud.com/blog/nextcloud-15-goes-social-enforces-2fa-and-gives-you-a-new-generation-real-time-document-editing/

[49] sebastianbergmann/foal: https://github.com/sebastianbergmann/foal/

[50] пост: https://derickrethans.nl/breakpoints.html

[51] jordanbrauer/unit-converter: https://github.com/jordanbrauer/unit-converter

[52] danog/MadelineProto: https://github.com/danog/MadelineProto

[53] Хабрапост: https://habr.com/post/433268/

[54] PHP_CodeSniffer 3.4.0: https://github.com/squizlabs/PHP_CodeSniffer/releases/tag/3.4.0

[55] paragonie/corner: https://github.com/paragonie/corner

[56] mmasiukevich/service-bus: https://github.com/mmasiukevich/service-bus/

[57] Неделя Symfony #624 (10-16 декабря 2018): https://symfony.com/blog/a-week-of-symfony-624-10-16-december-2018

[58] Неделя Symfony #625 (17-23 декабря 2018): https://symfony.com/blog/a-week-of-symfony-625-17-23-december-2018

[59] cebe/yii2-lifecycle-behavior: https://github.com/cebe/yii2-lifecycle-behavior

[60] Understanding Yii 3 (draft): https://www.yiiframework.com/wiki/2547/draft-understanding-yii-3

[61] Пример пайплана для Laravel приложения на Gitlab CI: https://ohdear.app/blog/our-gitlab-ci-pipeline-for-laravel-applications

[62] beyondcode/dusk-dashboard: https://github.com/beyondcode/dusk-dashboard

[63] Laravel Dusk: https://laravel.com/docs/master/dusk

[64] пост: http://marcelpociot.de/blog/introducing-the-laravel-dusk-dashboard

[65] Laravel Core Adventures: https://laravelcoreadventures.com/

[66] clue/reactphp-ssh-proxy: https://github.com/clue/reactphp-ssh-proxy

[67] Пост: https://www.lueck.tv/2018/introducing-reactphp-ssh-proxy

[68] Быстрый веб-скрапинг на ReactPHP #2: сохраняем в MySQL: https://www.youtube.com/watch?v=rSexLp-subY

[69] О корутинах в PHP Swoole: https://www.swoole.co.uk/article/swoole-coroutine

[70] Гайд по оптимизации скорости магазинов на Magento 2: https://onilab.com/blog/magento-2-performance-speed-optimization-guide/

[71] @onilab_rescue: https://twitter.com/onilab_rescue

[72] Magento Tech Digest #40: Dec 10 – 17, 2018: https://www.maxpronko.com/magento-tech-digest-40-dec-10-17-2018/

[73] План релиза Drupal 9: https://www.drupal.org/blog/plan-for-drupal-9

[74] WP-CLI v2.1.0: https://make.wordpress.org/cli/2018/12/18/wp-cli-v2-1-0-release-notes/

[75] Разработка SPA (Single Page Application) на WordPress: https://www.youtube.com/watch?v=ojo5BpkbP2A

[76] ollyxar/php-malware-detector: https://github.com/ollyxar/php-malware-detector

[77] набора регулярок: https://github.com/ollyxar/php-malware-detector/blob/30f409ad60c25f5e66db91e17cc6389dce3d3eef/src/Patterns.php#L21-L35

[78] В WordPress 5.0.1 устранена уязвимость: http://www.opennet.ru/opennews/art.shtml?num=49781

[79] Автоматический поиск уязвимых функций не запрещенных через disable_functions: https://x-c3ll.github.io//posts/find-bypass-disable_functions/

[80] Критические уязвимости в phpMyAdmin: https://www.phpmyadmin.net/news/2018/12/11/security-fix-phpmyadmin-484-released/

[81] guardrailsio/awesome-php-security: https://github.com/guardrailsio/awesome-php-security

[82] Рекомендации по именованию от Александа Макарова: https://en.rmcreative.ru/blog/naming-things/

[83] кастомного рантайма PHP для AWS Lambda: https://aws.amazon.com/blogs/apn/aws-lambda-custom-runtime-for-php-a-practical-example/

[84] Миф о недостатках статических методов и свойств: https://medium.com/helium-mvc/debunking-the-myth-of-static-classes-methods-and-variables-8059472a1bc7

[85] О миграции с Docblock типов на тайпхинты PHP: https://www.tomasvotruba.cz/blog/2018/12/10/rocket-science-behind-migration-of-docblock-types-to-php-typehints/

[86] 9 трюков PhpStorm от Кирилла Смелова в гифках: https://www.tomasvotruba.cz/blog/2018/12/13/kirill-smelov-s-phpstorm-tips-in-9-gifs/

[87] Бенчмарки PHP 5.6, 7.0, 7.1, 7.2 и 7.3: https://kinsta.com/blog/php-benchmarks/

[88] Что нового в PHP 7.3: https://www.youtube.com/watch?v=-GBi7tSqGDE

[89] lex111: https://habr.com/users/lex111/

[90] Введение в PHP Reflection API: https://habr.com/post/433266/

[91] этого твита: https://twitter.com/pronskiy/status/1077026362697879552

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

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

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

[95] PHP Digest: https://t.me/phpdigest

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

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

[98] Предыдущий выпуск: PHP-Дайджест № 145: https://habr.com/post/432600/

[99] Источник: https://habr.com/post/434128/?utm_source=habrahabr&utm_medium=rss&utm_campaign=434128