Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4, PhpStorm 2019.3, InfectionPHP и другие релизы, статистика версий PHP, об использовании FFI, видео с прошедших конференций и митапов, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.4.0 — Долгожданный релиз интерпретатора доставлен строго по расписанию. Спасибо всем контрибьюторам и релиз-менеджерам Derick Rethans и Peter Kokot за проделанную работу! Из нового:
• Типизированные свойства
• Стрелочные функции
• Ограниченная ковариация возвращаемого типа и контравариантность типа аргумента
• Присваивающий оператор объединения с null (??)
• Распаковка внутри массивов
• Разделитель в числовых литералах
• Обработка исключений из метода __toString()
• Предзагрузка OPcache
• FFI — Все что вы хотели знать про PHP 7.4 FFI
• Пачка возможностей переведены в разряд устаревших, а также есть изменения, ломающие обратную совместимость.
• Полный список изменений в документе php-src/UPGRADING
Как Badoo переходит на PHP 7.4.
Судя по бенчмаркам, производительность без учёта предзагрузки увеличилась в среднем на ~11%.
С выходом 7.4 закончился период поддержки PHP 7.1, а PHP 7.2 перешёл в режим только секьюрити фиксов. Самое время обновиться: Как установить PHP 7.4 на различных ОС.
- PHP Internals News #37 – PHP 7.4 Celebrations! — Разработчики рассказывают о своих любимых фичах из PHP 7.4.
- PhpStorm 2019.3 — Поддержка PHP 7.4, PSR-12, WSL, MongoDB и многое другое. Видеообзор основных изменений.
- Drupal 8.8.0 — Кроме прочего, в релизе добавлена нативная поддержка Composer.
- Статистика версий PHP – 2019.2 — Традиционная подборка статистики использования версий PHP на основе данных, которые отправляет Composer при подключении к packagist.org. Новые версии принимаются сообществом быстро, у PHP 7.3 доля 35.24%, а PHP 5 медленно отмирает и занимает 9%.
- skyeng/php-communities — Открытый список PHP-событий, спикеров и организаторов. Ближайшие мероприятия:
• 10 декабря, Одесса: PHP OpenSource world. Stable multi-threaded application.
• 12 декабря, Москва: Открытый микрофон: backend. Badoo приглашает спикеров
• 14 декабря, Казань: Большая встреча PHP-разработчиков
• 18 декабря, Санкт-Петербург: SymСode St. Petersburg Meetup #8 @ JetBrains
• 21 декабря, Нижний Новгород: Второй митап сообщества PHP NN
Инструменты
- Infection 0.15.0 — Обновление инструмента для мутационного тестирования в PHP. В новой версии: Поддержка Codeception, PHP 7.4, Symfony 4.4 и 5.0, пара новых мутаторов и другое.
- clue/phar-composer — Инструмент для создания phar-архива из любого проекта на основе Composer. Пост в поддержку.
- phplrt/phplrt — Инструмент для создания парсеров на PHP по заданной грамматике. Пример: парсер json5.
- shivammathur/setup-php — GitHub action для добавления в свой воркфлоу, который подготовит среду PHP для дальнейших шагов.
- vlucas/phpdotenv V4.0 — Автоматическая загрузка переменных окружения из файла .env.
- totten/pogo — Инструмент позволяет писать однофайловые скрипты, указывая Composer-зависимости непосредственно в PHP-файле. Идея уже была реализована в sensiolabs/melody.
- PHPStan 0.12 — Статический анализатор для PHP в новой версии с поддержкой дженериков через PHPDoc аннотации.
Symfony
- Неделя Symfony #675 (2 — 8 декабря 2019)
- Предзагрузка PHP 7.4 в Symfony 4.4
- Логгирование изменений сущностей в Symfony 4
- Как создать RESTful API на Symfony 5 + API Platform для проекта на MODX
- Пятиминутка PHP № 72 — С Валентином Удальцовым про SymfonyCon 2019, про обработку событий предметной области (Domain Events), про компоненты Messenger, Mailer и про планы дальнейшего развития Symfony 5. И продолжение в выпуске № 73 о SymfonyCloud, надёжной доставке сообщений, статическом анализе PHP кода.
Laravel
- Об использовании View model — Новая глава из серии Laravel beyond CRUD.
- Кейс и рекомендации по переносу приложения на Laravel Vapor
- Streamlining Laravel — Несколько идей по улучшению Laravel.
- Form Requests — больше, чем валидация — Перевод.
- Astrocasts — Делаем командную шину на Laravel и Tactician 2.x
Yii
- hunwalk/yii2-basic-firestarter — Модифицированная версия базового шаблона с предварительно настроенными функциями для быстрого старта проекта.
- Минимальной версией интерпретатора для Yii 3 будет PHP 7.4
Zend
- Новости о Laminas — Проект Apigility будет переименован в Laminas API Tools (неймспейс
Laminas\ApiTools
), а Expressive будет называться Mezzio. Официальный релиз Laminas запланирован на январь 2020.
Async PHP
Материалы для обучения
- Бенчмарк 4 способов генерирования UUID в PHP — Сравнение PECL расширения uuid, свежего полифила расширения symfony/polyfill-uuid, популярного пакета ramsey/uuid и биндинга libuuid через FFI jolicode/ffi-uuid.
- 4 ключевых момента при запуске PHP приложений на нескольких серверах — И подкаст The Undercover ElePHPant #3 с Larry Garfield и Robert Douglass.
- Уроки, извлечённые из тестирования и рефакторинга легаси-проектов
- Как узнать, равны ли два float в PHP
- Анонимные функции в PHP: сеанс чёрной магии с разоблачением
- Школа магии PHP
- Прекратите использовать Else в ваших программах
- О serverLess PHP
Аудио/Видео
- Laravel EU 2019
- PHP.Barcelona 2019
- Бесплатный курс по Blackfire от SymfonyCasts
- Ноябрьский PHP-митап в офисе Skyeng
- Встреча PHP-разработчиков Уфы
Занимательное
- Как разработчику развиваться в небольшом и не самом айтишном городе
- Как завести pet project и не получить выгоды
- Поддержите разработчиков пакетов, которыми вы пользуетесь с помощью symfony/thanks:
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 168