Свежая подборка со ссылками на новости и материалы. В выпуске: Будущее PHP и Zend Framework, RFC из PHP Internals о повышении производительности, порция полезных инструментов, новый слоник PHP доступен для заказа, и многое другое.
Приятного чтения!
Новости и релизы
- Будущее 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 openssl_random_pseudo_bytes() — Функция
openssl_random_pseudo_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.
- Асинхронный Zend Expressive с помощью Swoole
- Управляем параллелизмом: промисы, генераторы, корутины
- Туториал ReactPHP #13: Асинхронное скачивание
- Асинхронный WEB в 2018. Пишем чат на Websocket используя Swoole
- concurrent-php/psr-http — Асинхронный HTTP-клиент отвечающий PSR-стандартам. Прислал @dmitrybalabka
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 или поделиться своими.
- Советы по PHPStorm для продвинутых пользователей
- Подключение PhpStorm tasks к Битрикс24
- Обновите ваш PHP — Подборка причин и фактов, почему нужно обновиться до свежей версии PHP. Прислал berezuev.
- Организация по доменам — Структурирование большой кодовой базы с помощью DDD.
- О разнице между array_merge и оператором + для массивов
- 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
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 141