对于DI如何与ZF2协同工作,我有点困惑。我花了最近几天试图让我的头靠近它。虽然我已经取得了一些进展,但它仍然困扰着我...Zendframework2依赖注入混淆
使用此(http://akrabat.com/getting-started-with-zend-framework-2/)教程我设法得到掌握以下内容:
'di' => array('instance' => array(
'alias' => array(
'album' => 'Album\Controller\AlbumController',
),
'Album\Controller\AlbumController' => array(
'parameters' => array(
'albums' => 'Album\Model\Albums',
),
),
的工作原理是因为在我们的相册控制器类中我们有一个setAlbum函数。所以当DI课程将调用setAlbums函数并将其传递给'Album \ Model \ Albums'类。
得很好,没有问题..
现在让我们来看看这个(这来自于框架应用程序关闭了Zend网站)
'Zend\View\HelperLoader' => array(
'parameters' => array(
'map' => array(
'url' => 'Application\View\Helper\Url',
),
),
),
现在我想中了Zend \查看\期望有HelperLoader(或继承类)将包含一个DI类将传递数组的setMap()函数。但这似乎并非如此。因为我无法在任何地方找到setMap。
我的问题首先是我不了解DI与ZF2的合作方式......但是上面的代码(关于zend \ view \ helper)实际上是做什么的。我的意思是什么在Zend \ View \ HelperLoader中注入'map'=> array('url'=>'Application \ View \ Helper \ Url')实际上做了什么?
感谢任何人的帮助。我很感激这是一个测试版框架,我现在可能得到的答案现在不适用于几个月。但这一切似乎都很重要,我只是没有得到它!
我想我已经完成了它(主要是..) func_get_args用于获取构造函数的参数名称(即$ map = null)。所以在我上面的代码中('map'=> array('url'=>'Application \ View \ Helper \ Url')表示$ map的构造函数是array(array('url'=>'Application \ View \ Helper \ Url') 我测试了这个,通过改变构造函数参数到$ map1导致上述停止工作,然后我将其更改为'map1'=>数组,然后一切又开始工作了。 – james