Свежая подборка со ссылками на новости и материалы. В выпуске: релизы Laravel 7 и CodeIgniter 4, атрибуты v2 и другие RFC-предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.

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



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


  • CodeIgniter 4.0 — Спустя 5 лет разработки вышла новая версия фреймворка. Переписан с нуля, но всё так же в виде единого пакета. Работает на PHP 7.2+, реализованы PSR-1,3,4.
  • Ближайшие мероприятия:
    • Ярославль, 12 марта: BeerPHP
    • Санкт-Петербург, 13 марта: BeerPHP SPB Meetup #2
    • Воронеж, 16 марта: 2-й PHP-митап городского чата
    • Екатеринбург, 26 марта: 3-й PHP-митап
    • Казань, 28 марта: 2-й PHP-митап
    skyeng/php-communities — Открытый список PHP-событий, спикеров и организаторов.

PHP Internals


  • [RFC] Attributes v2 — Вторая попытка добавить полноценные аннотации в PHP с синтаксисом двойных угловых скобок <<...>>. Готов черновик реализации. Ранее уже были предложения о простых аннотациях и атрибутах, последнее предложение как раз не прошло голосование.
    Скрытый текст
    use Doctrine\ORM\Mapping as ORM;
    
    <<ORM\Entity(["repositoryClass" => UserRepository::class])>>
    <<ORM\Table("users")>>
    class User
    {
        <<ORM\Id, ORM\Column, ORM\GeneratedValue>>
        public int $id;
    
        <<ORM\Column(["unique" => true])>>
        public string $email;
    
        <<ORM\ManyToOne()>>
        public ?Address $address;
    }
    
  • [RFC] Increment/Decrement Fixes — Операторы инкремента и декремента в некоторых случаях ведут себя не так же, как явное прибавление/вычитание единицы с присвоением. Например:
    Скрытый текст
        <?php
    
        $a = [];
        $a = ++$a; // [] and no errors
        $a = $a + 1; // Fatal error
        
    В PHP 8 предлагается исправить эти и другие несоответствия и бросать TypeError где необходимо.
  • [RFC] Stringable — Предложение от Nicolas Grekas принято. В PHP 8 можно будет использовать union-тип string|Stringable там, где ожидается строка, и передавать классы с __toString(). При этом интерфейс явно добавлять не нужно.
  • [PR] Make sorting stable — Стандартные функции сортировки в PHP не являются стабильными. Это значит, что оригинальный порядок элементов с одинаковыми значениями не гарантируется (пример). Предлагается это исправить и сделать сортировки стабильными. Правда, при большом количестве одинаковых элементов такой фикс отразится на производительности.

Инструменты


  • shivammathur/setup-php — GitHub action для добавления в свой воркфлоу, который подготовит среду PHP для дальнейших шагов.
  • minicli/minicli — Пакет для создания консольных утилит. Серия постов в поддержку.
  • cebe/php-openapi — Инструмент читает OpenAPI файлы с описанием сервисов в удобные для работы объекты PHP.

Symfony



Laravel



Yii


  • yiisoft/friendly-exception — Релиз первого пакета из Yii 3. Интерфейс для описания человекопонятных исключений сразу с возможным решением.

Laminas



Async PHP



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



Аудио/Видео



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

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

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

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