我目前正在创建一些基于OOP原则的东西,并且我正在尝试应用依赖注入。我意识到我可能在这里做错了什么,整个依赖注入的事情似乎更令人困惑,但我仍然在努力解决这个问题。
我已经创建了一个将输出各种表单元素的Form类,但是这个form类至少还需要另外两个类(创建为对象)才能正常工作。
下面是我是如何得到它的:
$config = new Config();
$db = new Database();
$html = new HTML();
$form = new Form($config, $db, $html);这只是我的游戏,所以Form可能不需要所有这些东西,但我使用它们来说明这一点。
现在,当我创建一个表单时,我不希望必须将三个对象传递给它才能使用它。我可以用静态方法等来解决这个问题,但我真的不想走这条路。
那么,使用前面在Form类中创建的三个对象的最佳方式是什么呢?
我想我在某种程度上想要一种几乎是全球性的行为。
我发现了一些关于这方面的东西,工厂,IoC容器等等,但没有任何东西能清楚和容易地解释它,所以任何对这方面的帮助都会很好。或者甚至链接到一个容易理解的教程或其他东西,因为我自己也找不到。
我还发现了Pimple -这样的东西可以沿着正确的路线吗?
发布于 2013-05-03 20:31:01
好吧,如果你不传入这三个对象,你就不是在做依赖注入。
为了避免再次出现这些参数,您可以编写一个包装类,也可以编写一个包含创建和返回form对象的方法的工厂类。您可以使用$config, $db, $html初始化工厂类一次,然后将其用于创建的每个表单。
因此,该过程将如下所示:
$factory= new Factory($config, $db, $html);
$form= $factory->createForm();https://stackoverflow.com/questions/16358611
复制相似问题