1

我目前正在根据 OOP 原则创建一些东西,并且我正在尝试应用依赖注入。我知道我可能在这里做错了什么,整个 DI 的事情似乎比它可能更令人困惑,但我仍在努力完全理解它。

我创建了一个表单类,它将输出各种表单元素,但表单类至少需要两个其他类(创建为对象)才能正常运行。

这就是我得到它的方式:

$config = new Config();
$db = new Database();
$html = new HTML();

$form = new Form($config, $db, $html);

这只是我在玩,所以 Form 可能不需要所有这些东西,但我用它们来说明这一点。

现在,当我创建一个表单时,我不想将三个对象传递给它来使用它。我可以用静态方法等解决这个问题,但这真的不是我想要走的路。

那么,能够使用之前在 Form 类中创建的三个对象的最佳方法是什么?

我想我在某种程度上想要一种几乎全球性的行为。

我发现了一些关于这个和工厂、IoC 容器等的事情,但没有任何东西可以清楚而轻松地解释它,所以任何帮助都会很棒。甚至是一个易于理解的教程的链接,或者我自己找不到的东西。

我还发现了 Pimple - 这样的事情可能是正确的吗?

4

1 回答 1

3

好吧,如果你不传入三个对象,你就没有进行依赖注入。

为了避免再次使用参数,您可以编写一个 Wrapper 类,或者一个具有创建和返回表单对象的方法的工厂类。您可以使用一次初始化 rhe 工厂类,$config, $db, $html然后将其用于创建的每个表单。

所以这个过程看起来像这样:

$factory= new Factory($config, $db, $html);
$form= $factory->createForm();
于 2013-05-03T12:31:01.043 回答