PHP-Дайджест № 126 (12 – 25 февраля 2018)
Свежая подборка со ссылками на новости и материалы. В выпуске: игра-головоломка, Yii 2.0.14, PHP-DI 6.0 и другие релизы, предложение о неизменяемых классах из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- Yii 2.0.14 — Под капотом больше сотни улучшений и исправлений почти во всех компонентах фреймворка. Кроме того, это последний релиз в версии Yii 2.0, содержащий улучшения. В дальнейшем core-команда сконцентрирует силы на разработке версии 2.1.
- PHP-DI 6.0 — Добавлена компиляция контейнера и другие улучшения.
- В nginx 1.13.9 добавлен HTTP/2 Server Push — Пара примеров использования с PHP тут и тут.
- Sylius v1.1.0
PHP Internals
- [RFC] Immutable classes and properties — Предлагается реализовать неизменяемые классы и свойства:
immutable class Email { public $email; public function __construct ($email) { $this->email = $email; } } $email = new Email("foo@php.net"); $email->email = "bar@php.net" // Call will result in Fatal Error
class User { private $id; public immutable $email; public function __construct ($id, $email) { $this->id = $id; $this->email = $email; } }
Инструменты
- rest-control/rest-control — Инструмент для тестирования и валидации REST-сервисов.
- fredsted/webhook.site — Полезный инструмент для тестирования вубхуков.
- php-school/cli-menu — Интерактивные меню для командной строки.
Материалы для обучения
- Symfony
- Ускоряя роутер Symfony, 2 — О технических деталях реализации 77-кратного ускорения роутера. Немного бенчмарков на реальном приложении.
- PaEndpointBundle — альтернатива контроллерам Symfony
- Неделя Symfony #581 (12–18 февраля 2018)
- Неделя Symfony #582 (19–25 февраля 2018)
- Yii
- Yii development notes #20
- Laravel
- spatie/laravel-csp — Небольшой пакет для работы с заголовками Content Security Policy.
- voten-co/voten — Клон Reddit на Laravel.
- jshannon63/laravel-psr15-middleware — Адаптер для использования PSR-15 middleware в Laravel. Пост в поддержку.
- 5 хелперов Laravel, которые упростят жизнь
- larastream.com — Как Twitch только для Laravel.
- Async PHP
- Асинхронный PHP: Зачем?
- Промисы Amp: от генераторов до корутин
- Быстрый Web-парсинг с помощью ReactPHP — Есть перевод.
- clue/php-mq-react — Легковесная мини-очередь, реализованная на ReactPHP.
- CMS
- Критические уязвимости в Drupal 7.x, 8.4.x
- Migrate API и с чем его едят. На примере миграции форума Drupal 7. Часть 1
- CleanTalk, запуск WordPress Security
- О неправильном понимании принципа DRY
- Фабрика как сервис
- О реализации аналога pipe-оператора в юзерлэнд PHP
- Моки на архитектурных границах — О том где и когда лучше использовать моки.
- Отладка PHP с помощью Xdebug: руководство 2018
- Об использовании WebDriver из BotMan для реализации веб-API для чатбота.
- Мутационное тестирование в больших PHP-проектах с помощью Infection.
- Data-driven тестирование в PHPUnit
- Обработка вебхуков с помощью Serverless PHP
- PSR-7 фреймворк: Шаблонизаторы и вёрстка
- Разворачиваем автоматизацию за пару часов: PHPUnit, Selenium, Composer
Занимательное
- returntrue.win — Игра-головоломка по РНP, в которой требуется передать такой аргумент в функцию, чтобы она вернула true. Возможны несколько вариантов ответов. Скрытый текстОтветы и разбор.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 125