Size: a a a

2020 August 16

AP

Arman Poghosyan in Yii Framework 3
in_array($definition[1], get_class_methods($definition[0]) ?? [], true) - А вот эта часть для какого use case-а?
источник

AM

Alexander Makarov in Yii Framework 3
Arman Poghosyan
is_array($definition) && array_keys($definition) === [0, 1] - это по сути любой callable в виде массива, то есть первая проверка is_callable то же самое
в PHP 8 нет
источник

AM

Alexander Makarov in Yii Framework 3
Это всё для него.
источник

AP

Arman Poghosyan in Yii Framework 3
Я что-то видать пропустил по PHP 8, сейчас пересмотрю.
источник

AM

Alexander Makarov in Yii Framework 3
Там нельзя стало вызывать нестатичный метод как статичный.
источник

А

Алексей R in Yii Framework 3
но конкретно тут кейс другой, скорее всего. Это для отложенного создания сущности и вызова нестатичного метода
источник

AP

Arman Poghosyan in Yii Framework 3
https://wiki.php.net/rfc/consistent_callables - нашел, да, тада может сделать как-то явно?
источник

AP

Arman Poghosyan in Yii Framework 3
например: \function_exists('is_callable_type') && \is_callable_type($definition) чтоб потом все было понятней
источник

AP

Arman Poghosyan in Yii Framework 3
Алексей R
но конкретно тут кейс другой, скорее всего. Это для отложенного создания сущности и вызова нестатичного метода
Не совсем представил
источник

А

Алексей R in Yii Framework 3
Arman Poghosyan
Не совсем представил
ты задаёшь $def=[SomeService::class, 'someMethod'] и когда придёт очередь это вызвать, будет примерно такое: container->get($def[0])->{$def[1]}() только через Injector
источник

А

Алексей R in Yii Framework 3
т.е. это не callable с вызовом статики. Это получение объекта и вызов обычного метода
источник

AP

Arman Poghosyan in Yii Framework 3
точно, вижу. Я полюбому перепишу, чтоб было явно видно для чего это, чтоб когда будет какая-то X версия с PHP минимум 8, сразу было явно, что надо убрать
источник

AP

Arman Poghosyan in Yii Framework 3
А то сижу, голову ломаю, что за дополнительная проверка))
источник

А

Алексей R in Yii Framework 3
лучше напиши комментарий
источник

А

Алексей R in Yii Framework 3
а то комменты никто не любит писать и порой сидишь и тупишь "что это и зачем?"
источник

AP

Arman Poghosyan in Yii Framework 3
🆗
источник

AP

Arman Poghosyan in Yii Framework 3
А может убрать этот формат вообще? И сделать что-то типо ClassName::action или Classname@action как в многих других роутерах? Тогда typehint array можно будет вообще убрать в PHP 8
источник

AP

Arman Poghosyan in Yii Framework 3
В PHP 8 будут же union types и просто можно будет type hint string|callable и не делать опять проверку на callable
источник

AP

Arman Poghosyan in Yii Framework 3
Если я конечно правильно представляю все это
источник

А

Алексей R in Yii Framework 3
оставь это на потом
источник