PHP-Дайджест № 142 (15 – 29 октября 2018)
Новости и релизы
- Будущее Zend Engine и Zend Framework — В своем блоге Зеев Сураски объявил об уходе из Rogue Wave, которая в 2015 году поглотила Zend. Вместе с Зеевом уходят Matthew Weier O'Phinney и Enrico Zimuel, которые занимались Zend Framework, Zend Expressive, Apigility, а также Дмитрий Стогов. Интересно, что бренды принадлежат компании Rogue Wave, возможно переименование.Интересный анализ ситуации от Stefan Priebsch.
- PHP 7.3.0RC4 — Ожидается еще 2-3 релиз-кандидата и уже 6 декабря финальный выпуск PHP 7.3.
- Symfony St. Petersburg Meetup #4 — PropellerAds (30 октября 2018)
PHP Internals
- [RFC] Preloading — Концепт от Дмитрия Стогова оформлен в полноценный RFC. Предлагаетcя сделать возможным загружать файлы предварительно до обработки запросов. Все загруженные таким образом классы и функции будут перманентно доступны в контексте последующих запросов без необходимости инклудить. Кроме прироста производительности, такая возможность открывает пути для дальнейшей оптимизации.
- [RFC] Improve opensslrandompseudo_bytes() — Функция opensslrandompseudo_bytes() может неочевидным образом выдавать небезопасную случайную последовательность. Предлагается в этом случае бросать исключение.
Инструменты
- spiral/php-grpc — Высокопроизводительный сервер GRPC на базе spiral/roadrunner. Поддерживает запуск PHP и Golang сервисов в рамках одного приложения.
- spatie/value-object — Объект-значение с дополнительными хелперами.
- cebe/php-openapi — Инструмент читает OpenAPI файлы с описанием сервисов в удобные для работы объекты PHP.
- makasim/php-fpm-queue — Позволяет использовать php-fpm как простую асинхронную очередь. Подробнее об идее в посте.
- php-pds/skeleton — Годная попытка реализовать стандарт по структуре пакетов PHP.
- adsr/phpspy — Легковесный сэмплирующий профайлер для PHP 7. Не требует запуска расширения, а присоединяется к уже запущенному процессу PHP.
- NoiseByNorthwest/php-spx — Простой, но интересный профайлер для PHP с UI из коробки. Демо.
Материалы для обучения
Symfony
- Неделя Symfony #617 (22-28 октября 2018)
- Неделя Symfony #616 (15-21 октября 2018)
- Symfony 4.2: Важные возможности, которые объявлены устаревшими
- yemiwebby/symfony-hackathon-starter — Шаблонное приложение на Symfony для быстрого создания прототипов.
Yii
Laravel
- Laravel Telescope — Еще один инструмент в экосистеме Laravel. На этот раз расширенная отладочная панель. Подробный обзор.
- Вам действительно нужны entrust или laravel-permission для реализации вашей авторизации?
- Разворачиваем Laravel с помощью Kubernetes
- Прагматичный WHERE LIKE поиск по Eloquent моделям
- nuwave/lighthouse — GraphQL для Laravel. Под капотом использует webonyx/graphql-php.
Async PHP
-
concurrent-php/psr-http — Асинхронный HTTP-клиент отвечающий PSR-стандартам. Прислал @dmitrybalabka В рамках проекта concurrent-php/ext-async по реализации поддержки асинхронных IO операций в PHP, реализован HTTP клиент отвечающий PSR стандартам. Это показывает возможность интеграции поддержки concurrent-php/ext-async в существующие PHP библиотеки с сохранением обратной совместимости. Важно отметить, что при реализации корутин при помощи генераторов, асинхронная функция/метод начинает возвращать объект Generator, что мешает сохранить обратную совместимость интерфейса.
-
amphp/parallel 1.0.0 — Компонент из семейства Amp для параллельного выполнения PHP процессов с поддержкой синхронизации, общей памяти и другими возможностями.
-
clue/reactphp-buzz 2.5 — Простой в использовании асинхронный HTTP-клиент. Свежий пост в поддержку.
-
M6Web/Tornado — Еще один асинхронный движок для PHP со своей реализацией Event Loop и с адаптерами для ReactPHP и Amp.
-
Асинхронный WEB в 2018. Пишем чат на Websocket используя Swoole
CMS
- Magento Tech Digest #34: Oct 8 – 22, 2018
- Уязвимости в Drupal 7, 8
- WordPress 5.0 Beta 1 — Новый редактор Gutenberg, новая тема, и другие улучшения.
- Сравнительный и подробный анализ плагинов кеширования для WordPress
PhpStorm
-
PhpStorm 2018.3 EAP 183.3975.17 — В свежем билде EAP добавлен просмотр пул-реквестов GitHub.
-
Делимся сниппетами в PhpStorm — Из коробки в PhpStorm есть набор сниппетов, которые называются live templates, но можно добавить больше из GitHub или поделиться своими.
-
Обновите ваш PHP — Подборка причин и фактов, почему нужно обновиться до свежей версии PHP. Прислал @berezuev.
-
Организация по доменам — Структурирование большой кодовой базы с помощью DDD.
-
Christopher Pitt автор книги об асинхронном PHP, а также препроцессора для PHP preprocess.io пишет о создании блога с помощью препроцессора и JSX-подобного синтаксиса.
-
Автоматизация с Codeception + Gherkin + PageObject для самых маленьких
-
Статический анализ PHP-кода на примере PHPStan, Phan и Psalm
Аудио и видеоматериалы
Занимательное
- PHP мертв… Да здравствует PHP!
- hasegawa-tomoki/php-terminal-nes-emulator — Эмулятор NES (Dendy) на PHP.
- Ограниченным тиражом доступны для заказа слоники от подкаста PHP Roundtable
Спасибо за внимание!