PHP-Дайджест № 160 (1 – 15 июля 2019)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Свежая подборка со ссылками на новости и материалы. В выпуске: 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 World\n";'], $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


  • ru 10 полезных методов Коллекций Laravel
  • Исследование TestCase в Laravel и ускорение загрузки на 50% во время тестов.
  • video Делаем 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 и значит будет поддерживаться не менее двух лет.
  • video Пишем 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
  • habr Микросервисы или монолит: ищем решение
  • habr Спецификации в PHP
  • habr Whitespace Обфускатор для PHP
  • habr composer vs npm: многомодульная разработка
  • habr Разработка под Docker. Локальное окружение. Часть 1

Аудио/Видео


  • video DevConf 2019, Москва
  • video PHPDay 2019, Verona
  • video PHP Town Hall Episode 67 — О Zend Framework 3 и Laminas c Adam Culp.
  • audio That Podcast Episode 60 — O Twig, Drupal, и Sculpin с Oliver Davies.
  • audio 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

Источник: https://habr.com/ru/post/460022/


Интересные статьи

Интересные статьи

Данные из OSM + Blender + QGIS + … + творческий подход Долли Андриацифераны 1 | Dolly Andriatsiferana(@privatemajory) – Map data OpenStreetMap contributors Картографирование Жан-Луи Ци...
Мы просмотрели и сравнили 10 000 open source библиотек для Python и выбрали 34 самые полезные. Мы сгруппировали эти библиотеки в 8 категорий.
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...
Практически все коммерческие интернет-ресурсы создаются на уникальных платформах соответствующего типа. Среди них наибольшее распространение получил Битрикс24.