Свежая подборка со ссылками на новости и материалы. В выпуске: Zend Framework переходит под крыло Linux Foundation, новости из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- Zend Framework переходит под крыло Linux Foundation — и переименован в Laminas, чтобы избавиться от привязки к коммерческому бренду Zend.
В новую организацию перейдут микрофреймворк Expressive, Apigility, и сам ZF. Пока в репозитории есть только бридж-пакет laminas/laminas-zendframework-bridge со специальным автозагрузчиком. Полный переезд обещают завершить в следующие несколько месяцев.
PHP Internals
- [RFC] Arrow Functions 2.0 — Стартовало голосование по коротким лямбдам и ход голосования обнадёживает. Синтаксис остался прежним:
fn($x) => $x * $y
. - [RFC] Deprecate left-associative ternary operator — Почти во всех языках тернарный оператор вычисляется справа налево, а вот в PHP наоборот. Предлагается отменить левую ассоциативность совсем, а если необходимо использовать несколько тернарных операторов, то явно указывать очерёдность с помощью скобок.
1 ? 2 : 3 ? 4 : 5; // deprecated (1 ? 2 : 3) ? 4 : 5; // ok 1 ? 2 : (3 ? 4 : 5); // ok
- PHP Internals News #5 — О списковых включениях с автором RFC Ларри Гарфильдом.
- PHP Internals News #6 — Интервью с Remi Collet, релиз-менеджером PHP 7.2 об обеспечении качества PHP и расширений.
Инструменты
- pinba-server/pinba-server — Простой pinba-сервер на чистом PHP, который сохраняет все данные в Clickhouse. Есть готовый дашборд для графаны. Простая установка и низкие системные требования, а сжатые данные занимают очень мало места на диске. Прислал morozovsk.
- cycle/orm — ORM для долгоживущих приложений от автора RoadRunner Антона Титова. Подробная документация в процессе, есть сравнение с Doctrine и Eloquent.
- php-comrade/comrade-dev — Планировщик и менеджер задач на PHP.
- jwage/changelog-generator — Генератор списка изменений в маркдаун на основе информации из GitHub.
- moneyphp/money — Реализация фаулеровского паттерна Money. Под капотом используются строки.
- mamuz/PhpDependencyAnalysis — Инструмент строит граф зависимостей абстрактных типов и показывает плохие зависимости.
- robinvdvleuten/php-ulid — Вместо обычного UUID, в качестве идентификаторов можно использовать ULID, который обладает рядом преимуществ, в частности, лексически монотонно возрастает, а значит его можно удобно сортировать.
Symfony
Laravel
- spatie/laravel-event-projector v2 — Пакет для быстрого старта с Event Sourcing в Laravel приложении. Пост с примерами и мотивацией в поддержку.
- lorisleiva/laravel-search-string — Трансформирует запрос из человекопонятной строки в набор команд квери-билдера.
- Небезопасные SQL функции в Laravel — Об SQL-уязвимости в квери-билдере из-за неявного использования
json_extract
. Ошибка исправлена в Laravel 5.8.11. - Как быстро попробовать CQRS/ES в Laravel или пишем банк на PHP
- The Laravel Origin Story — Интервью с Тейлором, в котором он рассказывает, как начинался Laravel и как из сайд-проекта вырос в целую компанию.
- Подкаст Тейлора Laravel Snippet #11 — О JIT, безопасности Query Builder, толстых/тонких моделях, Laracon 2019.
- Laravel Hangout — Тейлор отвечает на вопросы пользователей в прямом эфире.
Yii
- Быстрый релизный цикл Yii — Основной фреймворк будет релизиться примерно раз в месяц, а расширения будут обновляться каждую неделю, если были изменения после предыдущих релизов.
Материалы для обучения
- Об использовании тиков и обёрток стримов для отлавливания ошибок сегментации.
- Правильный способ делать assert в PHPUnit.
- Тренды по PHP-фреймворкам на основе статистики скачиваний, а также сравнение скачиваний по версиям.
- Пятиминутка PHP № 50, 51 — 6 и 7 апреля 2019 в Брюсселе прошёл The Symfony and API Platform Hackathon. В двух выпусках подкаста, один из участников, Валентин Удальцов, делится своими впечатлениями.
- Пятиминутка PHP № 52 — Администрирование Linux — что нужно знать разработчику?
- Об индексах в MySQL
- Бизнес-логика в базе данных при помощи SchemaKeeper
- PHP. Фееричная расстановка точек над кавычками
- PHP GR8: повысит ли JIT производительность PHP 8
- Как запустить PHP 8 с JIT в Docker
Занимательное
- siara-cc/php_webview — Расширение предоставляет возможность использовать WebView из PHP на Mac/Win/Linux. Реализовано на основе zserge/webview.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Больше новостей и комментариев в Telegram-канале PHP Digest.
Прислать ссылку
Поиск ссылок по всем дайджестам
< Предыдущий выпуск: PHP-Дайджест № 153
Комментарии (15)
bat
22.04.2019 06:00robinvdvleuten/php-ulid — Вместо обычного UUID, в качестве идентификаторов можно использовать ULID, который обладает рядом преимуществ, в частности, лексически монотонно возрастает, а значит его можно удобно сортировать.
На ум приходит только один вариант использования — primary key.
Какие еще есть варианты?istepan
22.04.2019 07:37В мессенджерах, при создании сообщений на клиенте.
wickedweasel
22.04.2019 09:42На разных клиентах/серверах монотонность будет соблюдаться только частично даже при условии идеальной синхронизации часов.
maxyc_webber
22.04.2019 13:34Обидно, что по Yii мало информации последнее время. пацриот во мне расстраивается
EvgeniiR
22.04.2019 23:08Очень печально если выбор технологии для вас больше религиозный/патриотический вопрос, чем обоснованный выбор.
p.s. Автор фреймворка Китаец, в чем патриотизм то?)maxyc_webber
22.04.2019 23:38Патриотизм может быть не только к стране, но и к идее, к фреймворку.
Пс. Он японец вроде.gotovsky
23.04.2019 09:52Он китаец, у него и имя китайское и самое название Yii произносится созвучно с китайским словом «простой и развивающийся».
SamDark
23.04.2019 12:10Авторов версии 2 несколько. Но да, патриотизм не должен быть критерием выбора.
player259
22.04.2019 14:44Правильный способ делать assert в PHPUnit.
На этот вопрос уже давно ответил ментейнер PHPUnit
Обсуждение на гитхабе
Из документации
Если коротко, то правильным будет $this, но т.к. PHPUnit сплошное легаси 15-летней давности, никто его не будет переписывать только ради этогоOnYourLips
23.04.2019 08:20Если коротко, то правильным будет $this
Думаю, что слово «правильным» тут абсолютно неуместно. Лучше сказать «каноничным».
И судя по комментариям в виде смайликов, большинство каноничный способ считают неправильным, что не удивительно.player259
23.04.2019 11:55Согласен, но я о другом.
Тесткейс это полноценный объект, он хранит свое состояние на протяжении всего запуска, методы test* нестатические. Однако в нем присутствуют также и статические ассерты. Обычно класс используется либо полностью статически, как какой-нибудь helper, либо всегда инстанцируется, а здесь почему-то смешаны оба подхода.
Поэтому в контексте инстанса более правильным и очевидным будет использование $this, естественно и методы тогда должны быть нормальными.
Либо (о чем упомянули в issue) реализовать статический фасад по типу Assert::assertEquals(). Мне этот вариант кажется наиболее корректным.
Думаю в PHPUnit сделали это для некоего удобства, вроде как кода писать меньше, сразу все инструменты под рукой и т.п. Сэкономили на спичках. Ну либо скопировали из JUnit не заморачиваясь.
bat
laminat