Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 Alpha 2, о планах на PHP 8.0, Typed Properties и другие RFC из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.3.0 Alpha 2 — Второй плановый альфа-релиз с исправлениями ошибок. Полный список изменений ветки можно найти тут, а основные нововведения в прошлом выпуске дайджеста. Ожидается еще одна альфа и затем feature-freeze 17 июля.
Есть вероятность, что 7.3 станет последней веткой 7.* и следующим мажорным релизом будет PHP 8.0, в котором будут добавлены JIT, FFI, и, вероятно, возможности для реализации асинхронных и долгоживущих приложений.
Update: Комментарий Зеева Сураски о планах на PHP 8.0 - PHP 7.2.7
- Sylius v1.2.0
- Zend Server 2018
PHP Internals
- [RFC]: Typed Properties 2.0 — Большое и очень детальное предложение от Никиты Попова и Bob Weinand по реализации типизированных свойств. Ранее уже была попытка реализовать данную возможность, но предложение не прошло порог в 2/3 голосов. В текущем документе адресованы 2 ключевые проблемы прошлой реализации: поддерживаются типы для статических свойств, и ссылки на типизированные свойства. Поэтому на этот раз есть все шансы пройти голосование. Соответствующий пул-реквест уже готов.
Открытым остается вопрос версии: на данный момент рассматривается PHP 7.3, но если возникнут трудности, то, возможно, будет отложено до 7.4 (8).Скрытый текстclass Example { // All types with the exception of "void" and "callable" are supported public int $scalarType; protected Type $type; private ?Type $nullableType; // Types are also legal on static properties public static iterable $staticProp; // Types can also be used with the "var" notation var bool $flag; // Typed properties may have default values (more below) public string $str = "foo"; public ?string $nullableStr = null; // The type applies to all properties in one declaration public float $x, $y; // equivalent to: public float $x; public float $y; }
- [RFC] Deprecate and Remove Case-Insensitive Constants — C помощью
define()
можно определить константу нечувствительную к регистру. Предлагается убрать данную возможность. - [RFC] Deprecate and remove continue targeting switch —
continue
внутриswitch
ведет себя какbreak
, хотя в других языках это не так. Предлагается исправить поведение. - strict switch — Sara Golemon в качестве идеи предложила реализовать строгий
switch
:Скрытый текстswitch ($a) { case FOO: // Works exactly as current behavior. break; case == FOO: // Nearly identical, though we don't use the ZEND_CASE optimization. // Can probably make this equivalent to `case FOO`, but it felt like an interesting direction. break; case === FOO: // Only triggers if `$a === FOO`, no type juggling break; }
Инструменты
- spiral/roadrunner — Высокопроизводительный продакшн-реди сервер приложений, балансировщик нагрузки и менеджер процессов для PHP реализованный на Go.
- slince/spike — Реверс-прокси на PHP (ReactPHP) для раскрытия локальных проектов в публичный интернет. Аналог ngrok.io.
- spatie/async — Обертка над PCNTL для простого выполнения параллельных задач.
- RSS-Bridge/rss-bridge — RSS-фид для сайтов у которых его нет, из коробки 150+ адаптеров.
- DragonBe/hibp — Проверяет с помощью haveibeenpwned.com был ли скомпрометирован пароль.
- nunomaduro/collision — Крутые отчеты об ошибках для консольных приложений. Из коробки работает с Laravel, есть адаптер для Symfony.
- API-Skeletons/zf-doctrine-graphql — GraphQL для Doctrine с помощью гидраторов.
Материалы для обучения
Symfony
- Shopkeeper 4.0 — Интернет-магазин на Symfony + Angular + MongoDB
- Серия статей Создание галлереи картинок и блога на Symfony Flex
- Неделя Symfony #599 (18-24 июня 2018)
- Неделя Symfony #598 (11-17 июня 2018)
Yii
- deepziyu/yii2-swoole — Позволяет запускать Yii2 на асинхронном движке Swoole. Правда, пока все на китайском.
- bizley/yii2-migration — Генерирует миграцию на основе текущего состояния базы и предыдущих миграций.
- gevorgmansuryan/yii2-router — Элегантное определение роутов для Yii2.
- Бесплатная книга по Yii 2
Laravel
- tightenco/parental — Реализация STI Single Table Inheritance для Eloquent.
- tightenco/jigsaw — Генератор статических сайтов на основе шаблонизатора Blade.
- shipping-docker/vessel — Dev-окружение на Docker для Laravel.
- Breaking Laravel's firstOrCreate using race conditions
Async PHP
CMS
- Руководство по оптимизации Magento 2 (PDF)
- Magento Tech Digest #20: June 11 — 18, 2018
- Magento Tech Digest #19: June 4 — June 11, 2018
- О различных проблемах в реализации Dependency Injection
- Doctrine ORM и DDD агрегаты
- Сборка PHP-проектов на AWS CodeBuild
- Безопасное хранение и использование учетных данных в PHP-приложениях
- code-basics.ru — Бесплатные интерактивные курсы по PHP для новичков.
- Компьютерное зрение и машинное обучение в PHP используя библиотеку opencv
Аудио и видеоматериалы
- PHP fwdays 2018 — Видеозаписи всех докладов с конференции в Киеве.
- О визуальном восприятии кода
- PHP Roundtable Podcast #073: О статическом анализе в PHP
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 132