Разбор ООП с Delphinum

27K
.
(\/)____o_O____(\/)
какой то наркоманский фв
все на return
.
L!MP
# Delphinum (29.11.2016 / 20:25)
не соответствующие именам классов или интерфейсов
Ну это про альясы, в основном их делают для прямого использования контейнера.
Т.е:

use Ololo\Trololo\ServiceInterface;
use Ololo\Trololo\Service;

$container->bind(ServiceInterface::class)->to(Service::class);
$container->bind('sevice')->toAlias(ServiceInterface::class);

$container->get('service'); //=> Ololo\Trololo\ServiceInterface;


Ну и класс себе. Бывает и такое же, что есть класс не имеющий интерфейса, но участвующий в качестве зависимости у какого-то сервиса.
Он то может автовайриться сразу из тайпхинта, но а что делать если его нужно с конфигурировать, указать жизненный цикл, на пример.
.
# Koenig (29.11.2016 / 20:27)
какой то наркоманский фв
все на return
О чем ты?
.
(\/)____o_O____(\/)
L!MP, про Ларавель
.
# L!MP (29.11.2016 / 20:32)
Ну это про альясы, в основном их делают для прямого использования контейнера.
Т.е:


use Ololo\Trololo\ServiceInterface;
use Ololo\Trololo\Service;

$container->bind(ServiceInterface::class)->t
Я знаю только два случая, когда алиасы (да и любые имена сервисов, отличные от имени класса или интерфейса) оправданны:
1. При использовании сервиса в качестве плагина. На пример для контейнера хелперов шаблонизатора, в котором не удобно запрашивать хелпер по его полному имени
2. При использовании нескольких сервисов одного типа. На пример в случае, если приложение использует несколько кешей: Cache\Session, Cache\Entity и т.д.
В остальных случаях не вижу смысла в алиасах.

Плохо что класс не имеет интерфейса. Потому от "класса к себе" многие отказываются заменяя на "интерфейс к классу".
.
Delphinum, Ну ок, мы разговариваем ни о чем по сути.
Дело в том, что когда я задавал вопрос и перечислял то, что уже есть, я рассчитывал получить ответ о том, что м.б есть ещё какие-то юзкейсы, а не о том что мне нужно выпилить половину уже имеющегося функционала.

Пусть будет. Опять таки говорю, оно есть не просит и никак не влияет на поток выполнения.
.
# Koenig (29.11.2016 / 20:36)
L!MP, про Ларавель
А что там наркоманского? гг. Как ты вернёшь значение без return?
.
(\/)____o_O____(\/)
L!MP, не так выразился, но там даже с твоих примеров видно, много замыканий, то есть настройка на горячую
.
L!MP, не знаю как в ларавел, но у зенд есть еще:
1. Декораторы (делегаторы)
2. Инициализаторы
3. Абстрактные фабрики
4. Менеджеры плагинов
.
# Koenig (29.11.2016 / 20:47)
L!MP, не так выразился, но там даже с твоих примеров видно, много замыканий, то есть настройка на горячую
Ну это не настройка, а отложенная инициализация.
Легче сделать это замыканием, чем городить отдельный класс-фабрику.
Всего: 713