Я немного смущен тем, как DI работает с ZF2. Я провел последние пару дней, пытаясь понять это. Хотя я добился некоторого прогресса, многое из этого все еще сбивает меня с толку...
Используя этот (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\View\HelperLoader (или унаследованном классе) будет содержаться функция setMap(), которую класс DI передаст массив. Но, похоже, это не так. Поскольку я нигде не могу найти setMap.
Мой вопрос в первую очередь заключается в том, что я не понимаю в том, как DI работает с ZF2... Но также что на самом деле делает приведенный выше код (о zend\view\helper). Я имею в виду, что на самом деле делает внедрение 'map' => array('url' => 'Application\View\Helper\Url') в Zend\View\HelperLoader?
Спасибо за любую помощь, которую может дать кто угодно. Я ценю, что это бета-фреймворк, и ответы, которые я могу получить сейчас, не применимы через несколько месяцев. Но все это кажется довольно фундаментальным, и я просто не понимаю!