我已阅读有关ServiceManager的ZF文档,并考虑配置(即使在“config”php文件中),如
public function getServiceConfig()
{
return array(
'invokables' => array(
'my-foo' => 'MyModule\Foo\Bar',
),
);
}
很长很冗长。而且,如果我有很多依赖项,我想使用某种自动代码生成来完成这项任务。
在Symfony中,我可以像这样编写YAML配置:
parameters:
mailer.transport: sendmail
services:
mailer:
class: Mailer
arguments: ["%mailer.transport%"]
newsletter_manager:
class: NewsletterManager
calls:
- [setMailer, ["@mailer"]]
它会自动编译为Symfony的PHP代码。是否有一些解决方案可以为ZF2做类似的工作?我不认为每个人都会写出DI代码而不是实际工作。
答案 0 :(得分:1)
你可以连接Zend \ Config \ Reader \ Yaml来解析你的配置,但它们不会更加或更简洁,只是一种不同的格式。如果您更喜欢这种格式,请随意,但PHP数组非常灵活,对于这样的配置非常有用。
答案 1 :(得分:0)
您通常希望在模块的配置中连接它们(例如,module / Application / config / module.config.php)。
数组语法较短。
return [
'service_manager' => [
'invokables' => [
...
],
],
];
使用:: class而不是类字符串,它确实清理了代码,并且可以直观地在整个应用程序中使用SL调用它们。只需放弃使用'在顶部的语句,和:: class away。
如果你要进入ZF2,请不要配置汗水。这是一个非常直观的事情,尽管最初连接组件可能要慢一些,但是一旦你进入它,你会发现ZF2比其他框架更容易使复杂的东西变得容易;可能是以让简单的事情变得更加冗长为代价。参考:http://framework.zend.com/manual/current/en/modules/zend.service-manager.quick-start.html