По традиции подведем итоги уходящего года и вспомним самые значимые события в мире PHP. И конечно, ссылки на свежие новости, полезные инструменты и интересные материалы за последние две недели.
Под катом вас также ждет розыгрыш лицензий на PhpStorm от JetBrains.
Приятного чтения и с наступающим Новым годом!
Короткая аудиоверсия дайджеста в подкасте Пятиминутка PHP Выпуск №45
Одним из главных событий уходящего года, конечно же, является мажорный релиз интерпретатора PHP 7.3.0. Вот уже седьмой год подряд команда доставляет свежую версию без задержек.
Был выпущен последний релиз ветки PHP 5.6, и хотелось бы сказать, что ушла эпоха PHP 5, но значительная часть сайтов все еще использует PHP <= 5.6.
Один из основателей компании Zend Зеев Сураски поделился планами на PHP 8, среди которых были обозначены JIT, асинхронные возможности, FFI, и предзагрузка. Предзагрузка уже реализована и будет в следующей версии, а вот FFI хоть и реализована, но пока находится в голосовании и может быть отложена. И конечно, хочется вспомнить принятый RFC по типизированным свойствам!
В октябре, однако, Зеев объявил о том, что он сам и команда Zend в лице Дмитрия Стогова, Enrico Zimuel и Matthew Weier O'Phinney в скором времени покинут Rogue Wave (владеет Zend). Будем ждать новостей о дальнейшей судьбе команды в следующем году.
За 2018 год группой принято несколько стандартов:
• PSR-15: HTTP Server Request Handlers
• PSR-17: HTTP Factories
• PSR-18: HTTP Client
А также ряд стандартов находятся в разработке:
• PSR-5: PHPDoc
• PSR-12: Extended Coding Style Guide
• PSR-14: Event Dispatcher
Нельзя не вспомнить и об уходе Symfony из PHP-FIG.
Выпущено два мажорных релиза Symfony 4.1 и Symfony 4.2. Прекращена поддержка микрофреймворка Silex, потому что Symfony 4 может быть использован как микрофреймворк. И свежая новость о создании независимой коммерческой компании Symfony, которая будет заниматься разработкой и поддержкой фреймворка, а также работать над платными продуктами вокруг него, например, Symfony Cloud.
Как и Symfony, фреймворк Laravel в 2018 году отметился двумя мажорными релизами Laravel 5.7 и Laravel 5.6. И релизами пары новых инструментов от core-команды Telescope и Nova. Кстати, к команде присоединился еще один фултайм разработчик Dries Vints.
Кроме Yii 1.1.20 и Yii 2.0.14, 2.0.15, свет увидел Yii 3.0.0 alpha 1 Несмотря на сообщение Павла Климова о том, что Yii умирает, работа над третьей версией фреймворка активизировалась. К core-команде присоединился новый участник Андрей Васильев, доступен обзор изменений в Yii 3.0 и документ с планами.
В мире асинхронного PHP было много интересного в уходящем году. Вышел ReactPHP 1.0.0 LTS, а также PHP-PM 1.0. Опубликованы книги «ReactPHP для начинающих» и «Изучаем Асинхронный PHP с ReactPHP». Также активно развивается Amphp и инструменты на его базе.
Опубликовано предложение [RFC] Fiber, а также расширение ext-async.
Отдельно хочется отметить Swoole, который из китайской поделки вырос в мощный инструмент и имеет интеграции для всех популярных фреймворков.
А что еще интересного произошло в уходящем году?
Новости и релизы
- HHVM 3.30 — Последний релиз HHVM с поддержкой PHP.
- Nextcloud 15 — Релиз открытого аналога облачных хранилищ типа Dropbox.
Инструменты
- sebastianbergmann/foal — Инструмент найдет те строки в PHP-коде, которые будут удалены оптимизатором OpCache байткода. В тему пост том, почему Xdebug иногда не останавливается на брейкпоинтах.
- jordanbrauer/unit-converter — Конвертация различных единиц измерения.
- danog/MadelineProto — Клиент/сервер протокола Telegram MTProto. Позволяет взаимодействовать с Telegram без использования бот-API. Хабрапост с примером получения списка сообщений.
- PHP_CodeSniffer 3.4.0
- paragonie/corner — Пакет добавляет немного полезной информации в стандартные исключения и ошибки.
- mmasiukevich/service-bus — Фреймворк на базе Amphp для построения приложений с использованием паттернов Saga, CQRS, EventSourcing, Message Bus.
Материалы для обучения
Symfony
- Бизнес-модель Symfony
- Неделя Symfony #624 (10-16 декабря 2018)
- Неделя Symfony #625 (17-23 декабря 2018)
Yii
- cebe/yii2-lifecycle-behavior — Позволяет задать возможные состояния модели и переходы в виде конечного автомата.
- Understanding Yii 3 (draft)
Laravel
- Пример пайплана для Laravel приложения на Gitlab CI
- beyondcode/dusk-dashboard — Панель для визуализации тестов Laravel Dusk. Вводный пост в поддержку.
- Laravel Core Adventures — Серия видео о внутренностях фреймворка.
Async PHP
- clue/reactphp-ssh-proxy — Асинхронный (ReactPHP) SSH прокси коннектор для туннелирования любого TCP/IP-траффика через SSH. Пост в поддержку.
- concurrent-php/ext-async — Мощное и активно разрабатываемое расширение для добавления асинхронных возможностей в PHP. При этом есть возможность прозрачно заменить стандартные блокирующие функции, вроде
sleep
или работу с файловой системой, на асинхронные. - Быстрый веб-скрапинг на ReactPHP #2: сохраняем в MySQL
- О корутинах в PHP Swoole — Пример использования корутин и коммуникации через каналы а-ля Golang.
CMS
- Гайд по оптимизации скорости магазинов на Magento 2 — Прислал @onilab_rescue
- Magento Tech Digest #40: Dec 10 – 17, 2018
- План релиза Drupal 9
- WP-CLI v2.1.0
- Разработка SPA (Single Page Application) на WordPress
Безопасность
- ollyxar/php-malware-detector — Простой сканер на зловреды на основе набора регулярок.
- В WordPress 5.0.1 устранена уязвимость, приводящая к индексации паролей поисковыми движками
- Автоматический поиск уязвимых функций не запрещенных через disable_functions
- Критические уязвимости в phpMyAdmin
- guardrailsio/awesome-php-security — Подборка ресурсов и материалов по безопасности в PHP.
- Рекомендации по именованию от Александа Макарова
- Пример создания кастомного рантайма PHP для AWS Lambda
- Миф о недостатках статических методов и свойств и реальные за и против.
- О миграции с Docblock типов на тайпхинты PHP
- 9 трюков PhpStorm от Кирилла Смелова в гифках
- Бенчмарки PHP 5.6, 7.0, 7.1, 7.2 и 7.3 — Тесты на WordPress, Drupal, Magento 2, Laravel, Symfony и др.
- Что нового в PHP 7.3 — Обзор изменений от автора переводов документации PHP на русский lex111.
- Введение в PHP Reflection API
Новогодний розыгрыш
В комментариях к этому посту или в ретвите вот этого твита ответьте на вопрос:
Какая у вас самая любимая фича PhpStorm?
Разыгрывается 3 годовых лицензии на PhpStorm! Два победителя будут выбраны случайно из числа тех, кто написал комментарий или ретвитнул с комментарием. И одну лицензию получит автор самого интересного/неочевидного на мой взгляд комментария.
Победители будут объявлены
Upd: Из-за возникших обстоятельств 27/12 буду недоступен, поэтому победители будут объявлены 3 января. Но участвовать по-прежнему будут те, кто оставит комментарий до 27 декабря 21:00 MSK. Спасибо за понимание!
Так какая же фича самая любимая у вас?
Результаты
Спасибо огромное всем, кто принял участие в конкурсе и написал о своей любимой возможности PhpStorm! Победителей определил random.org.
- Среди комментаторов по счастливой случайности выигрышным стал первый комментарий от HerrDirektor.
- В твиттере многие писали только реплаи, однако по условиям конкурса нужно было сделать ретвит с ответом. Поэтому участвовали те, кто процитировал твит (ретвит с комментарием) или ответил + ретвитнул. И победителем стал @huhuh25.
- Ну а мне больше всего понравился комментарий nProfessor, в котором он показал Productivity Guide. PQR тоже написал о нем, но все-таки nProfessor был первым.
Поздравляю победителей! Всех с праздниками!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в телеграм-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 145