Свежая подборка со ссылками на новости и материалы. В выпуске: CakePHP 4, Codeception 4, Phalcon 4 и другие релизы, порция полезных инструментов, подкасты, видео с прошедших митапов, и многое другое.
Приятного чтения!
Новости и релизы
- CakePHP 4.0.0 — Минимальная версия PHP 7.2, поддержка PSR (3, 15, 16, 18) и много других изменений, в основном эволюционного характера
- Codeception 4.0 — Модули вынесены в отдельные пакеты, добавлена поддержка Symfony 5, phpdotenv 4, добавлен скрипт для апгрейда.
- Phalcon 4.0.0 — Релиз фреймворка, поставляемого в виде расширения PHP. Минимальная версия PHP 7.2, поддержка PSR (7, 11, 13, 16, 17), более строгие интерфейсы, добавлены фабрики. Больше изменений в руководстве по обновлению.
- Xdebug 2.9.0 — В релизе ускорена работа покрытия кода в 2.5 раза (по сравнению с Xdebug 2.7). Подробнее о причинах.
- PHP 7.4.1
- PHP 7.3.13
- PHP 7.2.26 — Последний полноценный багфикс-релиз ветки. Ещё год по мере необходимости исправления проблем безопасности, и всё.
- Новости PHP-FIG — О реализации принятого решения об обновлении стандартов, и предстоящих выборах core-комитета.
- skyeng/php-communities — Открытый список PHP-событий, спикеров и организаторов. Ближайшие мероприятия:
• 25 декабря, Москва: Юбилейный BeerPHP — BeerPHP: что это, зачем идти и как запустить у себя в городе
Инструменты
- DarkGhostHunter/Preloader — Инструмент помогает выбрать файлы для предзагрузки на основе статистики использования и сгенерировать скрипт предзагрузки. Подробнее в посте Preload в php 7.4: Composer и выбор файлов для предзагрузки.
- munusphp/munus — Библиотека для функционального программирования на PHP. Использует дженерик-аннотации из Psalm.
- thecodingmachine/safe 1.0.0 — В библиотеке реализованы обёртки над стандартными функциями PHP, так чтобы они бросали исключения вместо возвращения
false
. Подробнее в посте. - krakjoe/pthreads — некогда популярное расширение для реализации многозадачности в PHP было заархивировано. Вместо него рекомендуется использовать krakjoe/parallel.
Symfony
Laravel
- Laravel Idea — Под PhpStorm давно существовал Laravel плагин, но, к сожалению, последние пару лет поддерживается автором не активно. Появилась альтернатива в виде плагина Laravel Idea, который платный, но зато превосходит по возможностям оригинальный плагин. Автором является Адель, который известен по своему плагину .env files support, а также как автор книги «Architecture of complex web applications». Подробный обзор плагина в скринкасте.
- staudenmeir/eloquent-has-many-deep — Расширенная версия HasManyThrough, позволяет создавать связи с неограниченным количеством промежуточных моделей. Видео.
- Начинаем работу с GitHub Actions и Laravel
- Аутентификация OAuth2 в проектах Laravel
- Пишем фильтры с помощью spatie/laravel-query-builder
- Подкаст Тейлора Laravel Snippet #19: Laracon VIII, Laravel UI, Passport, Authentication.
- Laravel Snippet #20: Union Types, SPA Authentication, Laravel UI, Middleware Priority, Laracon 2020.
Yii
Async PHP
- Скринкаст по DriftPHP асинхронному PHP-фреймворк на основе ReactPHP и компонентов Symfony.
- amphp/http-client 4.0.0 — Обновление асинхронного HTTP-клиента из семейства Amp. Добавлена поддержка HTTP/2 и другие улучшения. Также при использовании c PHP 7.4 можно установить дополнительно
nghttp2
, которая будет использоваться через FFI.
Материалы для обучения
- PHP в 2019 — Трезво о состоянии дел в PHP сегодня. Перевод. (Статья майская, но под конец года можно повторить.)
- Сравнения синтаксиса Go и PHP
- index0h/php-conventions — Рекомендации по написанию PHP-кода в дополнение к стандартам PSR.
- Extract Test Framework Adapter to separate composer packages — Интересный и подробный документ о выделении пакета из Infection, в котором можно увидеть применение теории проектирования.
- Переменные PHP под капотом — Коротко о zval, подсчёте ссылок и прочем. Upd: Статья про zval из PHP 5, более актуально и подробно про PHP 7 в статьях Никиты Попова.
- «Нулевой» ад и как из него выбраться
- Самое интересное в PHP 8
Аудио/Видео
- Пятиминутка PHP № 74: Laravel Vapor — первые впечатления
- Пятиминутка PHP № 75 — C Александром Черняевым про Laravel, подходы к созданию бизнес-приложений и Laravel Orchid.
- Подкаст The Undercover ElePHPant #4 — О том, как обрабатывать таймауты и повторные запросы с Bastian Hofmann.
- Как обновиться до PHP 7.4 с помощью PhpStorm — 9 минут
Alt+Enter
и немного SSR. - Большой казанский PHP-митап
- Второй нижегородский PHP-митап
- Onliner PHP Meetup #5
Сообщество
- Каких мелочей не хватает в PHP? — Интересный тред от Никиты Попова на Reddit. Многие говорят о дженериках, асинхронщине и т.п. А есть ли какие-то приятные мелкие штуки, которых не хватает?
Также в треде ответ от Никиты,почему нет тайпхинта resource
. - Автор проекта github.com/hoaproject, в рамках которого развивалась целая пачка библиотек (суммарно 125к скачиваний ежедневно), разыскивает нового мейнтенера.
- Просто забавный мини-тред от одного из кофаундеров NPM.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
< Предыдущий выпуск: PHP-Дайджест № 169
Комментарии (17)
Atton
23.12.2019 10:42оффтоп: Друзья, где купить такого PHP слоника?
pronskiy Автор
23.12.2019 10:58+1Именно такого пока нигде, он пока в единственном экземпляре.
Фиолетовые еще есть www.phparch.com/swag/phpwomen-plush-elephpant
Calc
23.12.2019 12:30Обратите внимание, что PHP 7.2.17 (на других не проверял) и 7.2.26 имеют разное поведение при ошибках в коде при использовании Yii-debug 2.1.0
Проявляется просто. Запрос отрабатывается, ответ правильный, но HTTP заголовок подменяется на 500, в лог Yii-debug ошибка не пишется (7.2.26).
Отключение модуля debug исправляет работу, т.е. просто где то в debug модуле идет подмена заголовка (статуса). Если кто связан с Yii-debug, обратите внимание, до конца года точно не смогу отписать в issuesborNfree
23.12.2019 13:55Сугубо ради интереса — сюда смогли отписать, а в issues — нет? Почему?
Calc
23.12.2019 13:57+1То что выше написано, я не считаю описанием. Мне кажется нужно определить версию ПХП на которой это происходит и версию Yii-debug, которая этим страдает, а еще в идеале найти место где подменяется статус. А ну и не могу сказать чей это косяк, php или yii-debug
SamDark
23.12.2019 18:57+1Я связан. Это воспроизводится на каком-то особом запросе или же на любом? Получается ли воспроизвести на чистом шаблоне приложения basic?
spasibo_kep
Ты делаешь очень крутую работу, спасибо!