2014-08-27 4 views
2

Я хотел бы структурировать проект как следующий:ZF2 Подкаталог для контроллеров => просмотр файлов

MyModule/src/MyModule/Controller/TestController.php 
MyModule/src/MyModule/Controller/Admin/TestController.php 

Проблема в том, что оба контроллера ищет файл представления MyModule/test.phtml, потому что в каталоге Администратор не имеет значения. Есть ли способ позаботиться о каталоге, не записывая его вручную в каждом действии контроллера?

Я хотел бы структурировать так:

MyModule/src/MyModule/Controller/TestController.php => view/mymodule/test.phtml 
MyModule/src/MyModule/Controller/Admin/TestController.php => view/mymodule/admin/test.phtml 

Или, может быть, кто-то имеет представление о том, чтобы структурировать ее иначе?

Thanks

ответ

0

Я видел это ранее в предыдущем проекте. Уверен, вы можете сконфигурировать это в файле module.config.php, может быть что-то вроде:

// View file paths 
'view_manager' => array(
    'display_not_found_reason' => true, 
    'display_exceptions'  => true, 
    'doctype'     => 'HTML5', 
    'not_found_template'  => 'error/404', 
    'exception_template'  => 'error/index', 
    'template_map'    => array(
     'MyModule/Admin/Test' => __DIR__ . '/../view/mymodule/admin/test.phtml' 
    ) 
) 

Просто убедитесь, что пути являются правильными. Тем не менее, у вас может быть только модуль Admin и все там, где есть контроллеры администрирования, вам не придется беспокоиться о проблеме с контроллером/администратором, с которой вы сейчас сталкиваетесь с файлами представления. Затем все ваши другие модули могут либо расширяться, либо использовать DI, либо службу mgr, чтобы получить то, что вам нужно от модуля Admin.

0

Вы можете переопределить инжектор шаблонов по умолчанию с вашим собственным, где вы укажете логику, которая разрешит путь шаблона для контроллеров администратора.

Проверьте мой блог, охватывающую эту тему в глубину с примером

http://blog.igorvorobiov.com/2014/10/18/creating-a-custom-template-injector-to-deal-with-sub-namespaces-in-zend-framework-2/

Смежные вопросы