Архитектурные вопросы в приложении (лог, настройки)

Вурдалак

Продвинутый новичок
Метод попадания логера, то что ты его явно проставил в DI не делает этот метод более явным.
Что ты предлагаешь, какие альтернативы, поясни, не только мне, а всем нам. Почему кто-то, кроме конфигурации, должен знать как туда попал логгер?
 

Вурдалак

Продвинутый новичок
controller->service->somemodel->some child object
Давай обойдемся без somemodel, почему что с моделями в большинстве случаев речь идет о сущностях/value object'ах, которые не должны иметь зависимости от сервисов вообще, они не прописываются в DI-конфиге. Что значит «пробрасывать через всю цепочку»? Изменять код controller'а, service'а и т.д., чтобы заинжектить логгер в какой-то сервис в глубокой заднице? Инкапсуляция, не, не слышал?
 

WMix

герр M:)ller
Партнер клуба
Почему кто-то, кроме конфигурации, должен знать как туда попал логгер?
а почему кроме как конкретное место где сам логгер используется, об этом должна знать конфигурация?
 

Вурдалак

Продвинутый новичок
PHP:
interface Bar
{
    public function doBar();
}

class Foo
{
    public function __construct(Bar $bar) {
        // ...
    }

    public function doFoo()
    {
        // ...

        $this->bar->doBar();

        // ...
    }
}
Каким образом $bar получит инстанс логгера, кроме как не через DI-конфигурацию? Вы предлагаете добавить в интерфейс Bar метод setLogger()?
 

WMix

герр M:)ller
Партнер клуба
не согласен, в этом конкретном месте используется конкретная база данных с алиасом xyz а в конфиге просто описание что это за такая база xyz хоть мок
 

WMix

герр M:)ller
Партнер клуба
ServiceLocalor::get('Logger.пиши_в_оплаты')->info('свершилось bar->doBar() с вас 50,-');
ну или на край
EventManager::fire('bar.doBar()'); а там отпишу в логгер

вот у вас проблемы то :)
 
  • Like
Реакции: AmdY

Вурдалак

Продвинутый новичок
WMix, ну, не согласен так не согласен, если тебе приятно иметь зависимость от SL, то это твое дело.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Вурдалак, мне просто смешно читать флейм по очевидной теме, который ты высосал из пальца ради флейма как такового
я-то к тебе привык и не ведусь, а Hrakk повелся, и вы тут капитаните уже 4ю страницу :D
 

WMix

герр M:)ller
Партнер клуба
не единственный способ, если все описано через DI буду дальше писать через DI если через SL буду писать через SL. что угодно за ваши деньги. это ты зависишь от DI, а мне пофиг. обе технологии имеют право на существование.
 

Вурдалак

Продвинутый новичок
WMix, ты прав, мне не пофиг, я, так сказать, пассионарный разработчик. Мне приходится на работе заставлять тех, кому пофиг. Обычно те, кому пофиг, не понимают разницы, не знают теории, поэтому-то им и пофиг. :)
 

HraKK

Мудак
Команда форума
Нет, у меня просто нет аргументов либо меня не слышат, либо не хотят.
Каким образом $bar получит инстанс логгера, кроме как не через DI-конфигурацию?
class bar{__construct(iLogger $logger){}}
Вот так. Или например через LoggerFactory. Или еще как-то.
 

HraKK

Мудак
Команда форума
Короче флейм не о чем. Я умываю руки праздновать рождество) Спор о мыльных пузырях в вакууме не приведет к конкретике. А засим лучше я откупорю реальный пузырь)
 

AmdY

Пью пиво
Команда форума
HraKK, это всё французик виноват, приучил php-шников писать на dsl из конфигов, а не реальный код. Предлагаю сжечь Фабьена на костре. А конфиг - тот же GLOBALS
 

Вурдалак

Продвинутый новичок
AmdY, это ты зря, можно писать конфиги на обычных массивах + используя всякие Foo::class из 5.5, при этом используя DIC Symfony. Одно другому не мешает. XML — это круто, но лишь один из форматов, никто не заставляет.
 

WMix

герр M:)ller
Партнер клуба
WMix, ты прав, мне не пофиг, я, так сказать, пассионарный разработчик. Мне приходится на работе заставлять тех, кому пофиг. Обычно те, кому пофиг, не понимают разницы, не знают теории, поэтому-то им и пофиг. :)
выбранный изначально framework диктует правила использования. если пассионарный разработчик диктует использовать DI там где повсеместно используется SL, хочется спросить а к чему стремишься, ради чего такие жертвоприношения?
это сдохло, кому кроме DIC Symfony это никому не нужно, нахуа тебе XML, ямл намного читабильней
 

Вурдалак

Продвинутый новичок
выбранный изначально framework диктует правила использования
В этом-то и дело, что нет.
http://kristopherwilson.com/2013/11/27/decoupling-the-framework/
https://speakerdeck.com/jakzal/decoupling-from-the-framework
Не будь рабом фреймворка, чувак.

нахуа тебе XML, ямл намного читабильней
Когда появится YAML Schema, которая будет поддерживатся IDE, то я подумаю. А пока — автокомплит, валидация во время написания. В остальном, это дело вкуса.
 

WMix

герр M:)ller
Партнер клуба
В этом-то и дело, что нет.
разве есть цель разобрать до винтика? почему бы готовыми платами не складывать?
В остальном, это дело вкуса.
знал же, что все равно отмажется, скажет аппельсин приносил. :)
 
Сверху