Comments 19
>>>>разработчики обсуждают экосистему Carft CMS и потенциальный переход на Laravel
еще один гвоздь.....
Я бы не стал рядом упоминать doekenorg/iterator-functions, реализующую итераторы, и библиотеку Никиты Попова nikic/iter, которая основана на генераторах.
Ты имеешь в виду, что можно было просто новый стандарт выпустить?
Все-таки по поводу стандартов. Есть ощущение, что не так-то много их надо. Навскидку какие еще нужны?
И от каких языков отстает в этом плане PHP?
Хотелось бы чтобы все основные части фрэймворков были бы полностью взаимозаменяемыми. Мне кажется, что это и было главной идеей для создания стандартов.
Разные фреймворки потому и появляются, что у людей разное видение на хороший API. Иначе можно было бы создать стандарт для фреймворка :-)
Вот например symfony/console и так используется всеми. А те, кто его не используют — им, вероятно, не нравится как раз API.
Сколько есть аналогов flysystem?
Consumer/Producer — вот тут согласен. Есть вот такая инициатива https://github.com/queue-interop/queue-interop
Хотелось бы чтобы все основные части фрэймворков были бы полностью взаимозаменяемыми.
Разные фреймворки потому и появляются, что у людей разное видение на хороший API
Я тут на минуточку напомню, что FIG в PHP FIG - Framework Interop Group. И цель этой группы как раз делать интерфейсы, позволяющие делать совместимые компоненты, в частности, фреймворков. Чтобы можно было не писать, например, классы команд миграции доктрины отдельно для Yii, одельно для Symfony, Лары и тд, а написать один класс, который будет работать в любом из них, если ему через DI скормить правильные зависимости и правильно вызвать потом согласно спецификации стандарта.
На условный DI же есть стандарт. Да, есть куча разных имплементаций и конфигурируются они все по-разному. Но стандарт есть и вполне успешный как по мне. Почему не сделать такой же для консоли?
Список джавовских JSR, конечно, впечатляет https://jcp.org/en/jsr/all. Хоть и большинство из них не применимо к PHP.
Два года назад. PSR-12.
Но с тех пор появились занятные драфты:
Если рассматривать [RFC] User Defined Operator Overloads
то можно сразу и рассмотреть перегрузку методов и функций, чтобы не допускать таких извращений:
public function __add(int|float|string|BigNumber $other, bool $left): self
а в теле кучу if-else.
перегрузка методов сложна не написанием логики, а ее особенностью в рантайме для динамического языка.
Если оператор — легкая относительно рантайма операция, по сути маппинг, то поиск подходящего метода с учетом иерархии типов (интерфесы, наследование) — дорого,
плюс сложности при приведении типов, когда foo(int, string) и foo(string, int)
PHP Дайджест № 210 (16 – 30 августа 2021)