Картинка Vincent Pontier.

Подборка свежих новостей, инструментов и материалов из мира PHP.

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

Этот дайджест подготовлен совместно с Insolita. Если понравился выпуск, плюсаните пост, пожалуйста.

⚡️ Новости


  • The PHP Foundation Update, January 2022
    Фонд PHP стартовал свою работу в конце ноября и уже есть первые результаты. Получены и обрабатываются заявки на спонсорство от core-разработчиков, идет подготовка необходимых документов.
    Обзоры по работе фонда будут публиковаться каждый месяц, можно подписаться на твиттер @thephpf, чтобы следить за новостями.

  • PHP 8.0.15, PHP 8.1.2
    Багфиксы для актуальных веток PHP.

  • Drupal покинули группу PHP-FIG
    Зато теперь используют PHPStan в ядре.

  • [RFC] User Defined Operator Overloads
    Предложение добавить перегрузку операторов в PHP ожидаемо не прошло голосование.
    Автор RFC опубликовал довольно интересную инструкцию Как сделать RFC для PHP с пачкой неочевидных советов.

  • [Disussion] Trait expects interface
    Интересное обсуждение поднял SerafimArts с предложением добавить поддержку ключевого слова expects для трейтов, как указатель на то, что класс использующий трейт, должен имплементировать определенный интерфейс.
    Скрытый текст
    trait LoggerTrait expects LoggerInterface
    {
        // ...
    }
    
    class MyService
    {
        use LoggerTrait; // Fatal Error: Class MyService expects LoggerInterface to be implemented
    }
    
    class MyService2 implements LoggerInterface
    {
        use LoggerTrait; // OK
    }
    

    Это уже было в симпсонах есть в Psalm.


???? Инструменты


  • thephpleague/flysystem 3.0.0 – Мажорное обновление популярной библиотеки для работы с файловыми системами. Блогпост в поддержку
  • spatie/ignition – Обновлена библиотека для отображения страниц ошибок для отладки, многим знакомая по Laravel, но теперь не зависит от фреймворка и может быть использована в любых приложениях. Блогпост с обзором изменений.
  • chevere/xr – Отладочный сервер на ReactPHP, вдохновлённый идеей spatie/ray, но вместо десктопного приложения просто cli-команда для запуска. Видеодемо.
  • marijnvanwezel/reflection-file — Небольшая библиотека позволяет получить рефлексию по пути файла, а не по классу. Но если нужно больше возможностей, стоит обратить внимание на Roave/BetterReflection
  • Doctrine ORM 2.11 — С подержкой перечислений, виртуальных столбцов, read-only свойств, вложенных атрибутов и другого.
  • viewi/viewi — Мощный инструмент для создания реактивных приложений используя только PHP и HTML. Теперь есть интеграция с Symfony.
  • JustSteveKing/php-sdk, Sammyjo20/Saloon — Две похожих библиотеки с одинаковой идеей: упростить создание SDK для сервисов или организовать доступ к разным API в едином стиле.
  • AliSaleem27/wordle-cl — CLI-версия популярной игры Wordle для отгадывания пятибуквенных слов.
  • flow-php/etl — Реализация паттерна Extract Transform Load для PHP. Тред от автора.
  • staabm/phpstan-dba — Расширение для PHPStan, которое проверяет валидность SQL-запросов в PDO, mysqli и doctrine/dbal. Демо.


Symfony




Laravel




???? Статьи




???? Сообщество





Подписывайтесь на Telegram-канал PHP Digest.

Этот дайджест подготовлен совместно с Insolita. Если вам понравился выпуск, подпишитесь на Юлию в твиттере и поставьте плюс в пост, пожалуйста.


Заметили ошибку или опечатку? Сообщите в личку хабра или телеграм.

Прислать ссылку можно через форму или просто напишите мне в телеграм.
Поиск ссылок по всем дайджестам
Предыдущий выпуск: PHP-Дайджест № 219

Комментарии (8)


  1. mnogokotin
    24.01.2022 18:18

    годно )


  1. SerafimArts
    24.01.2022 19:37
    +12

    [Disussion] Trait expects interface

    Это уже было в симпсонах есть в Psalm.

    *Где-то радуется один Валентин* =)


    Но если без шуток, то да, есть. Но psalm, во-первых, очень часто глючит на сложных конструкциях и поддерживать level 1, обмазавшись всеми кастомными типами — это боль. Во-вторых, отстаёт от трендов и какая-нибудь конструкция с кастом к анонимке $fun(...) может просто вывести его из строя (кажется уже починили, но всё же), а array_values([...$iter]) до сих пор хайлайтится, т.к. считает что распаковка без ключей работает (это просто что я сходу вспомнил). И, в-третьих, является вспомогательным декларативным инструментом, на который не все обращают внимание.


    Так что перенос этой штуки из псалма на уровень языка несёт несколько профитов:


    • Будет почти гарантированная поддержка в IDE.
    • Сам язык зафаталится и скажет, что трейт Х — часть типа, а не просто набор функций.
    • Раз у нас уже есть трейты, и от них никуда не деться, то их начнут реже применять неправильно (а потом плеваться от них) и они станут альтернативной реализацией дефолтных методов у интерфейсов (я про которые из джавы).
    • Ну и это не аффектит скорость выполнения, т.к. линковка — стадия компиляции, а не интерпретации.


    1. Insolita
      24.01.2022 20:01
      +2

      Мне идея очень понравилась, слежу за дискуссией


  1. QeqReh
    25.01.2022 09:15
    +1

    Доступ к приватным свойствам в PHP — Вместо рефлексии и доступа через Closure::bind еще можно преобразовать к массиву и это будет даже быстрее.

    Можно, но это не значит что так надо делать на продуктовом коде.


  1. stur
    25.01.2022 12:45

    по WordPress ни одной новости, а между тем там скоро обновление :))


    1. Maksclub
      26.01.2022 19:45

      Значит скоро и новость будет


  1. POPSuL
    25.01.2022 13:43

    Эххх, жаль что перегрузку операторов зарежектили :(


  1. Stalinko
    26.01.2022 13:44

    Открыл статью про Laravel 9. Первая фраза: "Laravel 9 вышла 8 февраля 2022 года". Задумался... Даже календарь перепроверил.