PHP-Дайджест № 189 (21 сентября – 5 октября 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8.0 RC 1 и переименование параметров внутренних функций, PhpStorm 2020.3 EAP, многострочные короткие лямбды, атрибуты для групп свойств и другие новости PHP Internals, порция полезных инструментов, статьи, стримы, подкасты.

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



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


  • PHP 8.0.0 RC 1 — Стартовал цикл релиз-кандидатов ветки 8. Запланировано 4 выпуска и второй релиз-кандидат ожидается 15 октября.

    Усилия core-команды сосредоточены на пересмотре имен аргументов во всех модулях. Пример переименований в PDO. За ходом можно наблюдать здесь.
  • PhpStorm 2020.3 EAP — Стартовала программа раннего доступа. Уже реализована полная поддержка PHP 8 — поможет быстро сделать пакеты совместимыми с новой версией интерпретатора. Запланированы Xdebug 3, PHPStan/Psalm (в следующих билдах), интеграция Guzzle с HTTP-клиентом и другие фичи.
  • PHP 7.2.34
  • PHP 7.3.23
  • PHP 7.4.11
  • ru phpcommunity.ru — PHP-митапы, чаты и ютуб-каналы.
  • Традиционный Hacktoberfest с возможностью получить футболку за 4 пул-реквеста в открытые проекты пошел в этом году не по плану.

    Какой-то ютубер опубликовал инструкцию и показал, как делать примитивные пул-реквесты с изменениями в readme. Посыпался шквал бессмысленных PR. В итоге DigitalOcean теперь учитывают пул-реквесты только в те репозитории, у которых авторы явно указан топик ‘hacktoberfest’.

    Если вы хотите поучаствовать в опенсорсе и получить футболку, то вот инструкция как сделать хороший пул-реквест и список и issues с тегом #hacktoberfest в PHP-проектах.

PHP Internals


  • check [PR] Attributes on property groups — Атрибуты можно будет указывать сразу для группы свойств, а не только по одному, так же как это работает для модификаторов доступа.
    class FooBar {
        #[NonNegative]
        public int $x, $y, $z;
    }
    
  • check [PR] Attributes and strict types — Также атрибуты будут принимать во внимание директиву strict_types=1.
  • [PR] OPCache: Direct execution opcode file without php source code file — Концепт в виде в PR, в котором автор предлагает сделать возможным сохранять бинарный файл опкеша и запускать его уже без исходника. По сути, это что-то напоминающее подход в Java или очень похожее на питоновские файлы .pyc / .pyo.

    Теоретически, в этом случае можно было бы распространять предварительно скомпилированный PHP-код без исходников. Типа как .phar, но уже интерпретированный.

    Но в обсуждении указали на проблемы такого подхода. Формат опкода в PHP нестабилен и несовместим от версии к версии. Причем даже в рамках патч-релизов, то есть код скомпилированный на PHP 7.4.22 может просто свалиться с segfault на PHP 7.4.23. А сделать его стабильным — маловероятно.
  • [PR] Multiline arrow functions — Короткие лямбды, добавленные в PHP 7.4, могут содержать только одно выражение. В этом пул-реквесте представлена реализация многострочных коротких лямбд:
    $guests = array_filter($users, fn ($user) => {
    
      $guest = $repository->findByUserId($user->id);
    
    
      return $guest !== null && in_array($guest->id, $guestsIds);
    
    });
    

    Из явных преимуществ по сравнению с обычными лямбдами моно отметить автоматический захват скоупа, то есть не надо добавлять use.

    Также остается открытым вопрос синтаксиса, а именно стоит ли добавлять стрелку =>:
    fn() => {}
    или
    fn() {}

Инструменты


  • thephpleague/event 3.0.0 — Популярный пакет для событий теперь совместим с PSR-14.
  • terrylinooo/simple-cache — Драйверы кеша по стандарту PSR-16 для хранения в файлах, Redis, MySQL, SQLite, APC, APCu, Memcache, Memcached и WinCache.
  • Code With Me (EAP) — В тестовом режиме доступен плагин для совместной работы в IDE от JetBrains.
  • Bolt 4.0 — Обновление популярной CMS на Symfony- компонентах.

Symfony


  • В Symfony 5.2 будут атрибуты PHP 8 — Например: #[Route('/path', name: 'action')] для роутов, #[Required] для указания требуемых зависимостей.
  • Динамическое изменение уровня логирования в приложениях Symfony.
  • Неделя Symfony #718 (28 сентября — 4 октября 2020)

Laravel


  • spatie/laravel-typescript-transformer — Транслирует типы из PHP в Typescript для использования на фронтенде. Подробнее о мотивации в посте.
  • habr Система управления иерархическими древовидными комментариями для Laravel — drandin/closure-table-comments
  • habr Сделайте свое приложение масштабируемым, оптимизировав производительность ORM
  • habr Новинки Laravel 8
  • habr Laravel Jetstream — новый скаффолдинг для фреймворка
  • habr Laravel–Дайджест (28 сентября – 4 октября 2020)
  • Обновленные гайдлайны по PHP и Laravel от Spatie
  • video Laravel Worldwide Meetup #3: Yaz Jallad и Адель Фаизрахманов — Адель рассказывает про разработку плагинов для PhpStorm. Более подробный доклад от него ждем на PHP Russia.

Yii


  • W3C откажется от WordPress и будут использовать CraftCMS, который сделан на базе Yii 2. Сама новость не была бы такой интересной без отличного документа о том, какие аспекты принимались во внимание при выборе.

Async PHP


  • micc83/mailamie — Простой SMTP-сервер для тестирования отправки почты. Реализован на ReactPHP.

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


  • Какая же цветовая схема IDE лучше, светлая или темная? — Судя по исследованиям, лучше использовать светлую тему.
  • Анализ использований оператора подавления ошибок @.
  • Как статические методы убивают тебя хуже, чем коронавирус.
  • .gitattributes для PHP-проектов.
  • Почему не PHP? — Вдохновившись статьей «Почему не Rust», автор Psalm написал о главных проблемах PHP на его взгляд. А заканчивает статью фразой: «there’s never been a better time to start a new PHP project».
  • habr Валидация в PHP. Красота или лапша?
  • habr Собеседование php-developer в 2020.

Аудио/Видео


  • video Профилирование PHP-приложений с помощью Xdebug — Cтрим с автором Xdebug.
  • video Туториал по работе c rectorphp/rector.
  • ruaudio Подкаст Между скобок № 11 — В гостях Валентин Удальцов (Пых) рассказывает почему PHP пошел в сторону строгой типизации, для чего нужны статические анализаторы и как они работают, и про будущее статических анализаторов.
  • ruvideo Рефакторинг в стиле ниндзя и другие приемчики — Крутой стрим в котором Валентин Удальцов и Леонид Корсаков показывают как рефакторили компонент валидации из Yii 3 и вместе с ведущими Александром Макаровым и Валентином Назаровым обсуждают проблемы рефакторинга в целом.
  • video Компиляция и тест-драйв PHP 8 — Brent Roose и Freek Van der Herten пробуют новые фичи языка на стриме.




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

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

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

Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 188
Источник: https://habr.com/ru/post/522042/


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

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

Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Подборка новых статей по фреймворку Laravel. Научимся авторизировать пользователя через Гейты и Политики. Перепишем проект с веб-сокетов на Livewire. Поработаем с аутентификацией чере...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
В статье описаны необходимые параметры сервера для оптимальной работы сайта на платформе 1С-Битрикс.
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.