Size: a a a

2020 August 08

NO

Nex Otaku in Yii Framework 3
Roman Tsurkanu
Sentry тоже хотел предложить. Уже классика. Все используют. Надо делать.
В Yii2 для sentry уже есть пакет, по идее просто код оттуда перенести и всё. Там насколько я представляю должно быть минимум кода.
источник

NO

Nex Otaku in Yii Framework 3
Мы на работе использовали notamedia/yii2-sentry
источник

T

TradersVE in Yii Framework 3
Nex Otaku
Solution looks messy and bloated to me.

Service Provider, Extension... Adding more and more components, abstractions... To achieve what?

What do we want from modules?
1. Easy to install
2. Easy to customize

1 — we in 2020 have class autoloading, composer and PSR-4. There is nothing more need to do to include some third-party code in you app. "composer install" - and you have your package ready to use in any place in app )

2 — This is easily done using patterns, and OOP capabilities, already existing in core language.

Change implementation? Use interface.

Hook to event? Use Publisher/Subscriber pattern, or some other suitable pattern

Configure object dependencies? Use dependency injection

All this "we need more classes to provide modularity" comes from lack of knowledge of basic stuff. You don't need to reinvent the wheel. Just use what you have, all you actually need is already there.

Maybe this "modules standard" way was useful 10 years ago... But today it is obsolete.

Moreover, this "standard" is actually limiting your possibilities.

If we use usual ways to extend and customize code, like interfaces, dependency injection, we have access to ANY bit of logic in module, that is made replaceable.

Once module was developed with SOLID in mind, it should provide maximum flexibility. You can replace anything... And subscribe to events )

But, what happens with "Service Providers"-way? When you build module, you have to make Factories, Providers, and define set of extensible points.

Defining this set of extensible points, you tell the user: "This is what I give you, you can customize here and there, ask for no more". This is limiting!

So. For making a good, reusable, customizable module, you need:
1. Good understanding of OOP, architecture patterns
2. Basic language, tooling, framework features (interfaces, autoloading, package manager, dependency injection)
3. SOLID code
4. Well written documentation

And nothing more...
That's what the php-fig proposal is based on, our implementation is much better, I said.
источник

СП

Сергей Предводителев... in Yii Framework 3
источник

NO

Nex Otaku in Yii Framework 3
TradersVE
That's what the php-fig proposal is based on, our implementation is much better, I said.
Same flaws...
источник

СП

Сергей Предводителев... in Yii Framework 3
https://github.com/yiisoft/app/blob/master/src/Controller/AbstractController.php#L13

Для чего нужно use function array_merge;?
Она ведь и так работает.
источник

RT

Roman Tsurkanu in Yii Framework 3
\array_merge типа работает быстрей чем array_merge. Чтобы не указывать \ выносят в use. Точно не скажу про скорость, но вроде был доклад недавно на эту тему.
источник

RT

Roman Tsurkanu in Yii Framework 3
Быстрей работает не сама функция а поиск ее
источник

СП

Сергей Предводителев... in Yii Framework 3
Roman Tsurkanu
\array_merge типа работает быстрей чем array_merge. Чтобы не указывать \ выносят в use. Точно не скажу про скорость, но вроде был доклад недавно на эту тему.
Понял, спасибо
источник

RT

Roman Tsurkanu in Yii Framework 3
Но там какой-то очень маленький прирост, по этому многие забивают на это.
источник

RT

Roman Tsurkanu in Yii Framework 3
Могу ошибиться
источник

А

Алексей R in Yii Framework 3
Roman Tsurkanu
\array_merge типа работает быстрей чем array_merge. Чтобы не указывать \ выносят в use. Точно не скажу про скорость, но вроде был доклад недавно на эту тему.
array_merge вроде не бустится таким образом
источник

А

Алексей R in Yii Framework 3
там небольшой список функций и array_merge не в их числе https://github.com/php/php-src/blob/05478e985eb50c473054b4f1bf174f48ead78784/Zend/zend_compile.c#L4175
источник

А

Алексей R in Yii Framework 3
вот на почитать https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/3048
там ещё доп. список из opcache
источник

А

Алексей R in Yii Framework 3
источник

СП

Сергей Предводителев... in Yii Framework 3
Может ли быть какая-то ситуация, когда понадобится изменить ApplicationParameters вне инициализации в контейнере?

Хотя там каждый раз при изменении возвращается новый объект. Значит всё-таки есть какие-то ситуации когда это используется?

Я вот думаю, может добавить конструктор, в котором принимать массив конфига и убрать все функции name(), charset() и т. д.
источник

RT

Roman Tsurkanu in Yii Framework 3
Алексей R
там небольшой список функций и array_merge не в их числе https://github.com/php/php-src/blob/05478e985eb50c473054b4f1bf174f48ead78784/Zend/zend_compile.c#L4175
Спс
источник

СП

Сергей Предводителев... in Yii Framework 3
https://github.com/yiisoft/yii-demo/blob/master/src/ViewRenderer.php#L143

Подскажите, почему здесь использовали renderFile, а не просто render ? Если использовать render, то и от метода findLayoutFile можно отказаться... или я что-то упускаю?
источник

RM

Rustam Mamadaminov in Yii Framework 3
Сергей Предводителев
https://github.com/yiisoft/yii-demo/blob/master/src/ViewRenderer.php#L143

Подскажите, почему здесь использовали renderFile, а не просто render ? Если использовать render, то и от метода findLayoutFile можно отказаться... или я что-то упускаю?
Да, renderFile не распознает алиасы.
источник

СП

Сергей Предводителев... in Yii Framework 3
Rustam Mamadaminov
Да, renderFile не распознает алиасы.
Но алиасы ещё до findLayoutFile мы распознаём.
источник