Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 alpha 3, ReactPHP 1.0 LTS, порция полезных инструментов, видеозаписи с конференций, подкасты и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.3.7
- PHP 7.2.20
- PHP 7.4.0 alpha 3 — Последний альфа-релиз из запланированных. Фиче-фриз должен быть 22 июля, поэтому текущий список изменений может дополниться только теми, по которым голосование стартовало не позже 8 июля. Итого сейчас на голосовании:
• Deprecations for PHP 7.4
• Escape PDO "?" parameter placeholder
• Deprecate curly brace syntax for accessing array elements and string offsets
• Add str_starts_with(), str_ends_with() and related functions.Также пара свежих изменений без отдельных RFC:
•proc_open
будет принимать аргументы в виде массива, их не надо экранировать и при этом процесс запустится напрямую без промежуточного запуска shell:proc_open(['php', '-r', 'echo "Hello Worldn";'], $descriptors, $pipes);
• В PHP 7.4 будет бросаться notice при попытке использовать скалярные типы как массивы. Раньше такие вызовы просто возвращали
null
:$null = null; var_dump($null[0]); // NULL $int = 42; var_dump($int['foo']); // NULL var_dump(true[0] === false[0]); // true
Инструменты
- humbug/php-scoper — Инструмент позволяет в один шаг добавить префикс ко всем неймспейсам в указанной папке. Может пригодиться, когда необходимо использовать несколько версий одного пакета, пример использования для WordPress-плагинов.
- CaptainHookPhp/captainhook — Менеджер Git-хуков для PHP-проектов. Хуки конфигурируются в composer.json.
- sebastianfeldmann/phpbu — Инструмент для создания резервных копий файлов и баз данных. Умеет шифровать бэкапы и отправлять в хранилища.
- localheinz/http-method — Набор констант с названиями HTTP-методов.
- spiral/roadrunner — Сервер приложений для PHP на Golang. Добавлена поддержка FastCGI, настройки CORS из коробки, встроенные метрики на Prometheus. Подробный обзор в докладе от автора.
- leocarmo/circuit-breaker-php — Реализация паттерна Circuit Breaker для PHP. Альтернатива: ackintosh/ganesha.
Symfony
- Symfony Local Web Server, 6 месяцев спустя
- Неделя Symfony #654 (8-14 июля 2019)
- Переносим Symfony-приложение на Kubernetes
Laravel
- 10 полезных методов Коллекций Laravel
- Исследование TestCase в Laravel и ускорение загрузки на 50% во время тестов.
- Делаем Event Sourcing в Laravel с помощью EventSauce
Yii
- Как реализовать «логин под другим юзером» для тестирования приложения
- Последние релизы Yii 2 и новости Yii 3
Async PHP
- ReactPHP 1.0 LTS — 7 лет назад свет увидел первый релиз ReactPHP v0.1.0. А сейчас, команда проекта анонсировала версии 1.0 пакетов reactphp/dns, reactphp/cache и мета-пакета reactphp/react. Таким образом, все основные пакеты теперь достигли стабильной версии. Релиз идёт с пометкой LTS и значит будет поддерживаться не менее двух лет.
- Пишем RESTful API с помощью ReactPHP: Добавляем роуты, Рефакторим добавляя контроллеры, Тестовые ендпоинты, Добавляем обработку ошибок
- Используем ReactPHP для запуска команд Drupal
- swoft-cloud/swoft 2.0 — Фреймворк на базе Swoole для реализации микросервисов, вдохновлённый Spring Cloud из Java. Реализует PSR-7, PSR-14, PSR-15 и использует АОП. Вводный пост в поддержку.
Security
- nbs-system/snuffleupagus — Расширение блокирует запуск потенциально небезопасного кода в рантайме. Об использовании для предотвращения недавно опубликованных уязвимостей.
- paragonie/argon2-refiner — Инструмент поможет подобрать оптимальные параметры для хеширования с помощью алгоритма Argon2id, добавленного в PHP 7.3.
- Используем нюансы парсера запросов в PHP для обхода систем предотвращения/обнаружения вторжений в сеть.
- Magento 2.3.1: Unauthenticated Stored XSS to RCE — Разбор уязвимостей в Magento (<2.3.1), которые позволяли неаутентифицированному пользователю захватить магазин и перенаправить платежи.
Материалы для обучения
- Предзагрузка в PHP 7.4
- Хорошие практики написания Dockerfile
- Как правильно работать с Null значениями
- Прекратите использовать DateTime
- Микросервисы или монолит: ищем решение
- Спецификации в PHP
- Whitespace Обфускатор для PHP
- composer vs npm: многомодульная разработка
- Разработка под Docker. Локальное окружение. Часть 1
Аудио/Видео
- DevConf 2019, Москва
- PHPDay 2019, Verona
- PHP Town Hall Episode 67 — О Zend Framework 3 и Laminas c Adam Culp.
- That Podcast Episode 60 — O Twig, Drupal, и Sculpin с Oliver Davies.
- That Podcast Episode 61 — О новом компоненте HTTP Client в Symfony с Nicolas Grekas. Николас говорит, что PSR-18 не совместим с HTTP/2, потому что стандарт синхронный по своей сути.
Занимательное
- Запускаем PHP в JavaScript — Автор использует glayzzle/php-parser и kornelski/babel-preset-php. Из более интересных штук можно глянуть на oraoto/pib – PHP, транслированный в JS с помощью Emscripten.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 159
Автор: Роман Пронский