Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0RC6, PhpStorm 2018.3 и другие релизы, Symfony покидает PHP-FIG, свежие предложения и новости PHP Internals, порция полезных инструментов, видеозаписи с прошедших митапов и конференций и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.3.0RC6 — Шестой и, вероятно, последний релиз-кандидат ветки 7.3. Затаив дыхание ждем финального релиза уже 6 декабря. А пока можно еще раз посмотреть что нового в 7.3 в свежих обзорах тут и тут. Доступно немного бенчмарков, которые показывают прирост производительности ~10% по сравнению с 7.2.
- HTTP/3 поверх QUIC — Принято решение о том, что следующий стандарт HTTP будет использовать QUIC, который, в свою очередь, работает поверх UDP, а не TCP. Доступен обзор QUIC от CloudFlare, включая проблему с NAT и прочие нюансы.
- Доступен PhpStorm 2018.3
• Поддержка DQL
• PHP CS Fixer
• Новые рефакторинги
• Деплоймент на множество хостов одновременно
• GitHub Pull Requests
и много других улучшений! - Symfony покидает PHP-FIG — Лидер Symfony Фабьен удалил себя и фреймворк из списка участников группы PHP-FIG. И прокомментировал свое решение в Твиттере:
В этом свете все еще актуальным кажется открытые письмо Энтони Феррара к PHP-FIG, в котором он говорит: «Пожалуйста, перестаньте решать общие проблемы. Решите 50% проблем, не 99%».
Два года назад группу PHP-FIG уже покинули представители Laravel, Propel, Doctrine, Guzzle, Stash и Aura, в основном из-за того, что особо не принимали участия в обсуждениях.
PHP Internals
- RFC: Password Hashing Registry — Предложение принято для следующей версии PHP и позволяет в расширениях регистрировать собственные алгоритмы хеширования.
- RFC: Spread Operator in Array — Предлагается добавить оператор
...
для массивов.Скрытый текст$parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon'];
- [RFC] Preloading — Голосование по RFC о предзагрузке файлов завершилось. Все члены core-team единогласно поддержали это предложение. А значит в следующем году в 7.4 нас ждет возможность предварительно загружать в опкэш любые файлы. Все функции и классы, объявленные в этих файлах, будут доступны для всех последующих запросов, как если бы это были встроенные элементы вроде strlen() или Exception.?
Идут детальные обсуждения поддержки данной возможности в Composer и Symfony (прислал @dmitrybalabka), а также доступен концепт плагина Ayesh/Composer-Preload.
Инструменты
- spiral/roadrunner — Высокопроизводительный сервер приложений, балансировщик нагрузки и менеджер процессов для PHP реализованный на Go. В поддержку интересный рассказ о создании RoadRunner и кардинальном изменении подхода к разработке PHP-приложений.
- cebe/php-openapi — Инструмент читает OpenAPI файлы с описанием сервисов в удобные для работы объекты PHP.
- tgalopin/html-sanitizer — Библиотека для обработки, чистки и санитайзинга HTML-данных, пришедших от пользователя. Доступен такжебандл для Symfony. Прислал berezuev.
- jeremykendall/php-domain-parser — Парсер доменов, который распознает регистрируемую часть домена и публичный суффикс.
- nginxconfig.io — Генератор конфига Nginx.
- rryqszq4/ngx_php7 — Встраиваемый в Nginx интерпретатор PHP. Позволяет создавать обработчики запросов на PHP, модифицировать запрос/ответ, фильтровать тело ответа и заголовки, и прочее.
- php-decimal/ext-decimal — Расширение реализует десятичную арифметику с произвольной точностью и корректным округлением. Пост от автора в поддержку.
- Hywan/php-ext-wasm — Экспериментальное расширение, которое позволяет запускать бинарники WebAssembly прямо из PHP. Потенциально может дать возможность динамически подгружать модули, реализованные на других языках.
Материалы для обучения
Symfony
- yarhon/YarhonRouteGuardBundle — Бандл позволяет проводить проверки аутентификации применительно к конкретному роуту.
- Использование Symfony Messenger вместе с AWS SQS
- Symfony Bundle для экспорта статистик в формате Prometheus
- Обновление в использовании .env файлов для всех версий Symfony — Вместо
.env.dist
теперь просто.env
, который комитится в GIT, и можно создать.env.local
. - Неделя Symfony #621 (19-25 ноября 2018)
- Неделя Symfony #620 (12-18 ноября 2018)
Yii
- yiisoft/yii-project-template — Шаблон веб-приложения на Yii 3.0 для тех, кто хочет пощупать разрабатываемую версию фреймворка.
Laravel
- nuwber/rabbitevents — Пакет позволяет реализовать коммуникацию между независимыми веб-сервисами посредством подписки на события. Под капотом Laravel Queue, Laravel Events и RabbitMQ.
- anlutro/laravel-settings — Позволяет хранить конфигурацию в БД.
- spatie/dashboard.spatie.be — Панель для отображения данных на ТВ экране в реальном времени. Пост в поддержку.
- Динамические отношения в Laravel с помощью подзапросов
- Несколько трюков Laravel, о которых вы могли не знать
- Видеозаписи с Laracon AU 2018
- Laracon EU 2018 — Также доступна часть видеозаписей с европейской Laracon.
Async PHP
- clue/reactphp-socks — SOCKS-прокси клиент и сервер на базе ReactPHP. Пост от автора в поддержку.
- voryx/PgAsync — Асинхронный клиент для PostgreSQL на чистом PHP (не требуется расширение). Позволяет также слушать NOTIFY события.
- jakubkulhan/bunny — Асинхронная библиотека для работы с AMQP (RabbitMQ).
- wudi/swoole-ide-helper — Хелпер для IDE для Swoole.
- Быстрый веб-скрапинг на ReactPHP #1: Достаем данные из HTML
CMS
- PSR-18: The PHP standard for HTTP clients — Еще раз о недавно принятом стандарте.
- Пара статей о том, почему лучше использовать классы вместо массивов: раз и два.
- Запускаем PHP на Android с помощью PeachPie и Xamarin
- Когда стоит использовать монорепозиторий для PHP проектов
- Фаззинг исходников PHP для поиска ошибок и не только
- История о том, как мы ускорили тесты в 12 раз
- Матрица — терминальная операционная система в 10 Кб Javascript, для реактивных приложений на PHP
- Конспект доклада «Монолит для сотен версий клиентов» (HL2018, Badoo, Владимир Янц)
- Производительность PHP: планируем, профилируем, оптимизируем
Аудио и видеоматериалы
- Подкаст PHP Roundtable #80 — В гостях Никита Попов и Сара Голман обсуждают PHP Internals, предзагрузку, FFI, и другие RFC.
- Видеозаписи встречи в Минске Onliner PHP Meetup #2
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в телеграм-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
< Предыдущий выпуск: PHP-Дайджест № 143
SDKiller
На оф.сайте PHP-FIG пока что Symfony не убрали из списка.
Надеются, что одумается?
https://www.php-fig.org/personnel/#member-projects
SDKiller
А, просто PR не смержили.
Dead_Angel
Все равно все топовые уже ушли, Laravel, Propel, Doctrine, Guzzle, Stash, Aura, а теперь и Symfony, толку от PHP-FIG скоро станет крайне мало видимо
galliard
Просто каждый тянул одеяло на себя. Кому не удавалось перетянуть — обижался и уходил. Похоже в будущем нас снова будет ждать 14 различных стандартов одного и того же.
agulitsky
Будет как с Вебом — WHATWG и W3C.
OnYourLips
Видимо phpbb, drupal, joomla и прочие не в ту сторону тянули.
А претензия Фабиана — то, что сообщество вместо interop (кодстайл, автолоадинг) занялось изобретением фреймворка.