У меня есть кость, чтобы выбрать инъекцию зависимости. Похоже, что такая простая концепция привела к большой путанице среди многих, и «правильный» путь к ней, похоже, выходит из-под контроля с точки зрения сложности. В соответствии вещь действительно просто я просто хочу знать:Зависимость впрыска в PHP и DIC
Это хорошая практика, если использовать стандартные функции, чтобы зарегистрировать свою зависимость, как это:
function someObject() {
return new someObject();
}
И я могу передать параметры?
function someObject($param1) {
return new someObject($param1);
}
Наконец, как об использовании простого пользовательского класса контейнера:
class Dependencies {
function someObject($param1) {
return new someObject($param1);
}
}
И использовать его:
class SomeClass {
public function __construct(Dependencies $dependencies) {
$this->dependencies = $dependencies
}
public function methodNeedsDependency() {
$param1 = 'one';
$task = $this->dependencies->someObject($param1);
}
}
Я думаю, что я спрашиваю, это приличная попытку a очень простой реализация DIC? Или есть некоторые основные основные проблемы, возникающие под поверхностью?
Спасибо!
Простой, но тщательный ответ ... Поэтому, когда вы говорите «_create some instance with some exact config given_», вы имеете в виду, что конфигурация должна быть задана на уровне контейнера?Или разумно ли _параметизировать_, как указано в шаге 2, где это передается в качестве аргумента на более позднем этапе? –
Конфигурация должна быть указана на ... ну, config layer :) создать файл конфигурации (YAML, XML, TXT, что угодно), где вы говорите, что именно вы хотите передать экземпляру. Хорошим примером является конфигурация контейнера Symfony. Посмотрите, как там определяются службы. – mmmm