Ему отвечают
http://sergeyteplyakov.blogspot.ru/2013/01...085231387725747. Статейка само по себе - предостережение, ничего осуждающего такой подход, в ней нет.
По остальным ссылкам ничего конкретного.
Нет, не получится. Больше скажу конструкторы в компонентах моей CMS запрещены. Но если зависимости все таки нужно внедрять через конструктор, то для этого в моём контейнере есть посредник, который может подготовить любой объект, и поместить его в контейнер.
Вот пример
<?php
namespace ExampleCMS;
class Logger implements \ExampleCMS\Contract\Container\Mediator
{
public function get()
{
$name = $this->config->get('base.logger.name');
$level = $this->config->get('base.logger.level');
$filename = $this->config->getBasePath() . $this->config->get('base.logger.path');
$levels = \Monolog\Logger::getLevels();
return new \Monolog\Logger($name, array(
new \Monolog\Handler\StreamHandler($filename, $levels[$level])
));
}
}
У контейнера будет запрошен ExampleCMS\Logger, но когда контейнер инициализирует этот объект, то он посмотрит у него интерфейс и если интерфейс \ExampleCMS\Contract\Container\Mediator, то вызовет у объекта метод get, который должен будет вернуть конечную зависимость, которая в последствии и будет положена в контейнер под ключом ExampleCMS\Logger
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации