所以我刚刚将Pimple集成到一个项目中,我现在的情况是我有一个文件:
/application/config/pimple.php
其中有400多个:
/* Instantiate new Class */
$this->container['Some_class'] = $this->container->factory(function ($c)
{
require_once "application/classes/some/class.php";
return new Class();
});
我的问题是:这是常态吗?我应该关注这件事吗?有没有更好的方法呢?
答案 0 :(得分:1)
我应该关注这件事吗?
嗯,不。你可以使用它。框架Silex也使用Pimple作为服务容器。但是Pimple是一个小依赖注入容器。这对小型项目非常有用,但如果你的容器长大,你可能想要一些不同的东西。如果您寻找“更好”的内容,请查找DependencyInjection's组件。有了它,您可以在配置文件中描述您的DIC行为,例如:
parameters:
# ...
mailer.transport: sendmail
services:
mailer:
class: Mailer
arguments: ["%mailer.transport%"]
newsletter_manager:
class: NewsletterManager
calls:
- [setMailer, ["@mailer"]]
注意:建议注册自动加载器,而不是手动包含类。