PHP-Дайджест № 126 (12 – 25 февраля 2018)

5b8a90f8e733d0c8d7c3df62018d73a2.jpg


Свежая подборка со ссылками на новости и материалы. В выпуске: игра-головоломка, Yii 2.0.14, PHP-DI 6.0 и другие релизы, предложение о неизменяемых классах из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!



f574e9991c42407b8fa789a66b854f8d.png Новости и релизы


  • habrYii 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


c9ee7880391644e4aef6cc28ca681ab0.png 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;
      }
    }
    

cf862d9072784d04b621238ec137f2ca.png Инструменты


  • rest-control/rest-control — Инструмент для тестирования и валидации REST-сервисов.
  • fredsted/webhook.site — Полезный инструмент для тестирования вубхуков.
  • php-school/cli-menu — Интерактивные меню для командной строки.

329bec7c1e914963a1c5d2f2bfe99995.png Материалы для обучения


  • 96b65e92179a40f2bd1884549973ddd5.png Symfony
    • Ускоряя роутер Symfony, 2 — О технических деталях реализации 77-кратного ускорения роутера. Немного бенчмарков на реальном приложении.
    • habrPaEndpointBundle — альтернатива контроллерам Symfony
    • Неделя Symfony #581 (12–18 февраля 2018)
    • Неделя Symfony #582 (19–25 февраля 2018)

  • 569de4298b764a33894aa517e74324f9.png Yii
    • Yii development notes #20

  • 314bd0f0dfc54e3fa7f0c0daef1a2d25.png 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
    • ruАсинхронный PHP: Зачем?
    • Промисы Amp: от генераторов до корутин
    • Быстрый Web-парсинг с помощью ReactPHP — Есть ruперевод.
    • clue/php-mq-react — Легковесная мини-очередь, реализованная на ReactPHP.

  • CMS
    • Критические уязвимости в Drupal 7.x, 8.4.x
    • habrMigrate API и с чем его едят. На примере миграции форума Drupal 7. Часть 1
    • habrCleanTalk, запуск WordPress Security

  • О неправильном понимании принципа DRY
  • Фабрика как сервис
  • О реализации аналога pipe-оператора в юзерлэнд PHP
  • Моки на архитектурных границах — О том где и когда лучше использовать моки.
  • Отладка PHP с помощью Xdebug: руководство 2018
  • Об использовании WebDriver из BotMan для реализации веб-API для чатбота.
  • Мутационное тестирование в больших PHP-проектах с помощью Infection.
  • Data-driven тестирование в PHPUnit
  • Обработка вебхуков с помощью Serverless PHP
  • ruvideoPSR-7 фреймворк: Шаблонизаторы и вёрстка
  • habrРазворачиваем автоматизацию за пару часов: PHPUnit, Selenium, Composer

cc24d9c95c9841988f8299a8b285e6f6.png Занимательное


  • returntrue.win — Игра-головоломка по РНP, в которой требуется передать такой аргумент в функцию, чтобы она вернула true. Возможны несколько вариантов ответов.
    Скрытый текст
    Ответы и разбор.


Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.

Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 125

© Habrahabr.ru