PHP-Дайджест № 153 (25 марта – 8 апреля 2019)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое.

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



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


  • PHP 7.3.4
  • PHP 7.2.17
  • PHP 7.1.28
  • Packagist.org переезжает на AWS
  • habr PhpStorm 2019.1 — Отладка шаблонов Twig и Blade, поиск мертвого кода, улучшенное автодополнение и многое другое.
  • Принят PSR-14 Event Dispatcher — Новый стандарт регламентирует работу с событиями в приложении. Документ определяет три интерфейса: EventDispatcherInterface, StoppableEventInterface и ListenerProviderInterface, а также описывает характеристики, которым должны соответствовать все элементы и рекомендации по реализации. Подробнее можно прочитать в серии постов от одного из участников рабочей группы стандарта Ларри Гарфильда.
    Примечательно, что новый диспатчер в Symfony 4.3, по сути, совместим со стандартом, но как минимум из-за использования тайпхинта object, который доступен только в PHP 7.2+, использовать стандарт непосредственно в Symfony пока нельзя.
    Другой пример реализации стандарта yiisoft/event-dispatcher, вероятно, будет использоваться в Yii 3.

PHP Internals


  • [RFC] JIT — Предложение принято для PHP 8.0, а вот идея включить возможность в экспериментальном режиме в PHP 7.4 не нашла поддержки.
    В тему отличная статья Joe Watkins о том, что такое JIT вообще и что даст его реализация для PHP.
  • [RFC] Change the precedence of the concatenation operator — На данный момент операторы конкатенации . и математические +, - имеют одинаковый приоритет и выполняются слева направо. Предлагается понизить приоритет конкатенации:
    Скрытый текст
    echo "sum: " . $a + $b;
     
    // текущее поведение
    echo ("sum: " . $a) + $b;
     
    // предлагаемое поведение
    echo "sum :" . ($a + $b);
    
  • [RFC] Nullable Casting — При кастинге в примитивный тип предлагается сделать возможность кастить в null, то есть возможность использовать (?int)$x помимо (int)$x.
  • [RFC] Spread Operator in Array Expression — Снова предлагается добавить оператор ... для массивов. В обновленном предложении убрана поддержка массивов с нечисловыми ключами.
    Скрытый текст
    $parts = ['apple', 'pear'];
    $fruits = ['banana', 'orange', ...$parts, 'watermelon'];
    // ['banana', 'orange', 'apple', 'pear', 'watermelon'];
    
  • video Подкаст PHP Internals News #4: Short Arrow Functions with Nikita Popov, #3: Abolish Narrow Margins and Weak References with Joe Watkins

Инструменты


  • ivanakimov/hashids.php — Удобная библиотека для обфускации целочисленных идентификаторов.
  • smalot/pdfparser — Библиотека для парсинга PDF-файлов и извлечения информации.
  • YOURLS/YOURLS — Сервис сокращения ссылок.
  • cyrus-and/fracker — Инструмент позволяет в удобном виде отслеживать вызовы функций в PHP и будет полезен для исследователей безопасности.
  • wasmerio/php-ext-wasm — Экспериментальное расширение, которое позволяет запускать бинарники WebAssembly прямо из PHP, подгружая их динамически. В последней версии автор увеличил производительность в 29 раз и теперь модули выполняются уже быстрее, чем аналогичные реализованные на PHP.

Symfony


  • symfony/mailer — Новый компонент для отправки писем.
  • Неделя Symfony #639 (25-31 марта 2019)
  • Неделя Symfony #640 (1-7 апреля 2019)

Laravel


  • thepinecode/blade-filters — Фильтры для Blade вдохновленные аналогичной возможностью из Twig. Пост от автора в поддержку.
  • 20 малоизвестных фишек Laravel
  • Работаем с null-объектами в Laravel
  • Гайдлайны по PHP и Laravel от Spatie
  • Автоматическое обнаружение событий и слушателей — добавлено в Laravel 5.8.9.
  • video Подкаст Телора Laravel Snippet #10
  • habr Полезные репозитории с Eloquent?

Yii


  • Preparing Yii for the long run — Теперь фреймворк можно официально поддержать материально. Особенно актуально для тех, у кого мало времени, но поддержать хочется.
  • Yii development notes #27

Async PHP


  • WyriHaximusNet/docker-php — Docker-образы оптимизированные для ReactPHP.
  • phpinnacle/ridge — Асинхронный клиент для AMQP.
  • video Пятиминутка PHP №49 — Асинхронное программирование в PHP в 2019 году.

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


  • Как на самом деле работают переменные окружения в PHP — Обязательная к прочтению статья обо всех нюансах переменных окружения, по следам инцидента с Laravel.
  • Как замокать финальный класс с помощью PHPUnit
  • Деструктурирование массивов в PHP
  • Буфер вывода в PHP — Более подробно о теме на русском можно почитать habr тут и ru тут.
  • ru Тесты на Codeception для PHP-бэкендов
  • habr Яндекс.Алиса и бот Telegram на PHP с единым функционалом
  • habr Своя временная почта: телеграм бот
  • habr Современный PHP — прекрасен и продуктивен


Занимательное


  • ircmaxell/php-c-parser — Парсер языка C реализованный на PHP.
  • memory-agape/php-java — Эмулятор JVM на PHP.

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

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

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

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

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


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

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

Всем привет. Если вы когда-либо работали с универсальными списками в Битрикс24, то, наверное, в курсе, что страница детального просмотра элемента полностью идентична странице редак...
У некоторых бизнес-тренеров в области е-коммерса и консультантов по увеличению интернет-продаж на многие вопросы часто можно слышать универсальную отмазку — «надо тестировать» или другую (чтобы не...
Как широко известно, с 1 января 2017 года наступает три важных события в жизни интернет-магазинов.
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...
С версии 12.0 в Bitrix Framework доступно создание резервных копий в автоматическом режиме. Задание параметров автоматического резервного копирования производится в Административной части на странице ...