【发布时间】:2014-01-26 20:05:19
【问题描述】:
我是一个不错的 OOP 和 DI 的新手,因此想知道,以下示例及其初始化我的引导类(包括依赖对象)的模式是否真的可以使用,例如:
new Session(
new Config,
new Database (
new Config
),
new Page (
new Config
),
new Statistics (
new Database (
new Config
)
),
new Notification,
new Filter
);
相信熟悉DI的朋友可以说说上面bootstrap object中的那段代码吧?
它看起来有点笨重,但这可以吗?这就是我们可以称之为好吧/正确/可接受的方式吗?
【问题讨论】:
-
它是“可用的”,但想象一下一直这样做。最好查看您配置(一次)然后用于自动解析对象和注入依赖项(多次)的 DI 容器。看看Pimple 和Illuminate\Container。
-
@Jon 我是自动解析器的新手,能否请您发布一个包含如何使用它的示例的答案?我认为它对未来的读者很有用。
-
好吧,我基本上是从文档中复制粘贴...我认为人们最好直接访问源代码。
-
@Jon,好的,还是谢谢你!我会弄清楚的!
-
我必须问,为什么你有页面、统计、通知和过滤器被传递到会话中?依赖注入就是类正确运行的要求。在我看来,要让会话类起作用,你真正需要的只是'new Session($db, $config);'。