PHP-Дайджест № 175 (25 февраля – 10 марта 2020)

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

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

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



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


  • CodeIgniter 4.0 — Спустя 5 лет разработки вышла новая версия фреймворка. Переписан с нуля, но всё так же в виде единого пакета. Работает на PHP 7.2+, реализованы PSR-1,3,4.
  • Ближайшие мероприятия:
    • Ярославль, 12 марта: BeerPHP
    • Воронеж, 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


  • video На SymfonyCasts выкладывают серию туториалов по разработке на Symfony 5.
  • Автоматическая настройка Doctrine-репозиториев как сервисов.
  • Неделя Symfony #688 (2-8 марта 2020)

Laravel


  • Laravel 7 — В релизе:
    • laravel/airlock — новый компонент для аутентификации в SPA.
    • Кастомные касты для Eloquent — Туториал по использованию.
    • Компоненты Blade теперь можно описывать в виде классов и кастомных HTML-тегов вместо тега @component.
    • HTTP-клиент — Добавлена обёртка над Guzzle с более простым интерфейсом для типичных задач. За основу взят kitetail/zttp.
    • И другие изменения ru.
    Подробные видеообзоры изменений в Laravel 7 есть video на Laracasts и на канале video Coder's Tape.
  • livewire v1.0 — Фронтенд фреймворк для Laravel, который позволяет делать биндинги из Blade к PHP-классам и не писать дополнительного JS-кода. video Видеотуториал по созданию контактной формы.
  • nunomaduro/laravel-mojito — Простенький пакет для тестирования вьюшек. video Демо использования.
  • Оптимизация циклических отношений в Laravel.
  • audio Подкаст Тейлора Laravel Snippet #23: Laravel 7.x, Forge, Vapor, Speaking vs. Silence.
  • video Видео с Laracon Australia 2019
  • habr Принцип Единой Ответственности (SRP) на примере Laravel.
  • habr Laravel+Docker+Gitlab. С чего начать.

Yii


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

Laminas


  • Состоялось первая встреча Технического руководящего комитета проекта Laminas — Из протокола можно узнать о планах развития и финансирования Laminas.

Async PHP


  • driftphp/reactphp-dbal — DBAL для ReactPHP на основе Doctrine.

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


  • Как устроен JIT в PHP 8.
  • Подборка хороших практик программирования на PHP от Benjamin Eberlei.
  • Как я нашёл и исправил баг в стандартной библиотеке PHP.
  • habr Использование RabbitMQ вместе с MonsterMQ, 2, 3, 4, 5.
  • habr Маппинг данных из реляционной БД.
  • habr Избавляемся от рутины со своим плагином для PhpStorm.
  • Как написать хороший README — Также в тему отличный доклад от Андрея Ситника о том, ruvideo как продвигать open-source проекты.

Аудио/Видео


  • ruvideo Видео с RND PHP #2 (Ростов-на-Дону)
  • ruvideo Видео с PHP-митапа в Йошкар-Оле
  • audio Подкаст The Undercover ElePHPant #9 — О фоновых процессах и воркерах с Samuel Rose (Symfony core). Также основные моменты в посте Пять проблем надёжного запуска фоновых процессов на PHP.
  • audio Подкаст Voices of the ElePHPant — Интервью с Sara Golemon и Derick Rethans об изменениях в PHP 8.
  • audio PHP Internals News podcast #43 — C Никитой Поповым о фиксах трейтов и лексера.
  • audio PHP Internals News podcast #42 — C Jan Böhmer о перегрузке операторов.

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

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

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

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

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


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

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

Детская раскраска с картами от Мэдисона Дрейпера 1 | map data OpenStreetMap contributors Картографирование Пол Джонсон, размышляя о причинах выгорания, помимо прочего порекомендовал ком...
Свежая подборка со ссылками на новости и материалы. В выпуске: CakePHP 4, Codeception 4, Phalcon 4 и другие релизы, порция полезных инструментов, подкасты, видео с прошедших митапов, и многое д...
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.
В 2019 году люди знакомятся с брендом, выбирают и, что самое главное, ПОКУПАЮТ через интернет. Сегодня практически у любого бизнеса есть свой сайт — от личных блогов, зарабатывающих на рекламе, до инт...
1С Битрикс: Управление сайтом (БУС) - CMS №1 в России по версии портала “Рейтинг Рунета” за 2018 год. На рынке c 2003 года. За это время БУС не стоял на месте, обрастал новой функциональностью...