PHP-Дайджест № 155 (22 апреля – 6 мая 2019)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP, Codeception 3.0 и другие релизы, короткие лямбды в PHP 7.4 и обзор свежих RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое.

Приятного чтения!



Новости и релизы


  • PHP 7.3.5
  • PHP 7.2.18
  • PHP 7.1.29
  • Codeception 3.0 — Улучшенная интерактивная консоль, повторное выполнение шагов, поддержка PHPUnit 8 и другое.
  • spiral/roadrunner 1.4.0 — Обновление сервера приложений, балансировщика и менеджера процессов на Go. В релизе безопасная остановка воркеров, поддержка переменных окружения в конфигах, возможность контролировать воркеры в пуле, и другое. Есть новый сайт roadrunner.dev.
  • PHP Russia 2019 — 17 мая, Москва, Инфопространство. До последнего повышения цен остается всего несколько дней.

PHP Internals


  • [RFC] Arrow Functions 2.0 — Предложение прошло голосование и принято. Теперь в PHP будут короткие анонимные функции с использованием синтаксиса fn() => и автоматическим захватом переменных из внешнего скоупа по значению:
    $y = 1;
    $fn = fn($x) => $x + $y;
    

    Пока функции могут иметь только одно выражение строго, результат которого и будет возвращён. Многострочные функции, возможно, будут реализованы позже. Хак с использованием оператора && как в JS не сработает:
    Скрытый текст
    andOperator = ($x) => ($y = 10) && $x + $y;
    console.log(andOperator(5)); // 15
    
    $andOperator = fn($x) => ($y = 10) && $x + $y;
    var_dump($andOperator(5)); // bool(true)
    
    Но можно применить хак с использованием end():
    Скрытый текст
    <?php
    
    function last(...$args) {
        return end($args);
    }
    
    $multipleLines = fn($x) => last(
        $y = $x * 10, // 10
        $z = $y + 15, // 25
        $x + $y + $z  // 1 + 10 + 25 результат этого выражения возвращается из last()
    );
    var_dump($multipleLines(1)); // int(36)
    
    
  • [RFC] Deprecate PHP Short open tags — В предложении рассматривалась идея убрать возможность использования коротких тегов <?, однако оно было встречено бурей возмущений и споров. Поэтому был предложен гораздо более мягкий путь, в котором в ближайших версиях возможность остаётся доступной как есть, и будет бросаться depecation warning.
  • [RFC] Spread Operator in Array Expression — Предложение принято практически единогласно. Оператор ... теперь будет доступен в массивах.
    Скрытый текст
    $parts = ['apple', 'pear'];
    $fruits = ['banana', 'orange', ...$parts, 'watermelon'];
    // ['banana', 'orange', 'apple', 'pear', 'watermelon'];
    
    Также с помощью него можно быстро преобразовать итератор в массив вместо использования iterator_to_array:
    $array = [...$iter];
    
  • RFC: Allow throwing exceptions from __toString() — Никита продолжает систематически исправлять «грусти PHP» одну за одной. На этот раз речь идёт о возможности бросать исключение в __toString(). Ещё одно приятное и совсем не тривиальное улучшение для PHP 7.4, которое избавит от необходимости использовать всякие обходные пути 1, 2.
  • audio PHP Internals News #7 — Derick Rethans общается с Зеевом Сураски о JIT в PHP 8 и более ранних попытках реализации.
  • audio PHP Internals News #8 — Беседа с George Banyard, контрибьютором документации PHP, о коротких тегах.

Инструменты


  • kalessil/production-dependencies-guard — Пакет предотвращает добавление dev-зависимостей, например, тестовых и отладочных инструментов, в секцию require файла composer.json, а также делает несколько других проверок.
  • jakoch/awesome-composer — Подборка ресурсов и инструментов для Composer.
  • twirphp/twirp — Порт RPC-фреймворка Twirp от Twitch на PHP. Пост в поддержку.
  • EFTEC/BladeOne — Независимая от фреймворка версия Blade в одном файле и без зависимостей.
  • fe3dback/str — Объектная обёртка над string с массой методов для манипуляций и поддержкой многобайтовых строк.

Symfony


  • saa-nl/zymfony-bundle — Набор компонентов для миграции с Zend Framework 1 to Symfony 4. Название напомнило картинку:
  • Неделя Symfony #643 (22-28 апреля 2019)
  • Неделя Symfony #644 (29 апреля — 5 мая 2019)

Laravel


  • VanOns/laraberg — Порт блочного редактора Gutenberg из WordPress для Laravel.
  • aimeos/aimeos-laravel — Ещё одно e-commerce решение на базе Laravel.
  • video Как устроен Eloquent — Laravel Core Adventures
  • video Начинаем работать с event sourcing в Laravel — используя spatie/laravel-event-projector.
  • audio Подкаст Тейлора Laravel Snippet #12 — В выпуске о Vue SPAs, Intertia.js, Livewire, коротких лямбдах, PHP RFC.

Yii


  • Insolita/yii2-codestat — Считает статистику приложений на Yii 2.
  • omnilight/yii2-scheduling — Порт планировщика задач из Laravel для Yii 2.
  • ru К команде Yii присоединился Mehdi Achour
  • ru Обзор Yii3

Async PHP


  • Пишем RESTful API с помощью ReactPHP: Базовая HTTP аутентификация, и аутентификация с помощью JWT
  • habr Асинхронный PHP. Зачем?

Материалы для обучения


  • Компилятор PHP, также известный как кроличья нора FFI — Интересный пост о типах компиляторов, принципах их устройства, и собственно о реализации ahead-of-time (AOT) компилятора PHP с использованием LLVM и самого PHP.
  • Как мы мигрировали 54357 строк кода с Nette на Symfony вдвоём меньше чем за 80 часов.
  • Запускаем PHPUnit тесты из PhpStorm
  • Серия статей о PSR-14 — дополнена выпусками об использовании в отложенных и асинхронных окружениях.
  • azdanov/php-interview-exercises — Полезный репозиторий чтоб попрактиковаться в решении типичных алгоритмических задач, которые могут давать на собеседованиях.
  • habr 5 способов деплоя PHP-кода в условиях хайлоада
  • habr Статистика и мониторинг PHP скриптов в реальном времени. ClickHouse и Grafana идут на помощь к Pinba.
  • habr Ломаем паттерн проектирования Singleton в PHP
  • ruvideo Стрим по обновлению spatie/period — подглядывать в чужой монитор довольно познавательно.
  • audio SDCast #103: в гостях Никита Попов — Интервью с Никитой на русском о разных аспектах PHP и его разработки.

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

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

Больше новостей и комментариев в Telegram-канале PHP Digest.

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

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


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

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

Есть несколько способов добавить водяной знак в Битрикс. Рассмотрим два способа.
Но если для интернет-магазина, разработанного 3–4 года назад «современные» ошибки вполне простительны потому что перед разработчиками «в те далекие времена» не стояло таких задач, то в магазинах, сдел...
В статье описаны необходимые параметры сервера для оптимальной работы сайта на платформе 1С-Битрикс.
Отмечаем солнечные батареи — проект сообщества OSM в Великобритании на ближайший квартал 1 | data OpenstreetMap contributors Картографирование Теперь в мобильном редакторе Vespucci пользо...
Автокэширование в 1с-Битрикс — хорошо развитая и довольно сложная система, позволяющая в разы уменьшить число обращений к базе данных и ускорить выполнение страниц.