Я делаю приложение на портале для клиентов, используя ZF. И портал должен работать на разные бренды компании. Поэтому мне нужно использовать все тот же код бэкэнда / контроллеры / и т. Д., Но динамически изменять каталог представления на основе имени хоста.
Прямо сейчас моя структура каталогов вида выглядит примерно так:
/application/views/scripts/brand1/
/application/views/scripts/brand1/index/index.phtml
/application/views/scripts/brand1/error/error.phtml
/application/views/scripts/brand2/
/application/views/scripts/brand2/index/index.phtml
/application/views/scripts/brand2/error/error.phtml
/application/views/scripts/brand3/
/application/views/scripts/brand3/index/index.phtml
/application/views/scripts/brand3/error/error.phtml
and so on.
Я использую функцию addScriptPath () в bootstrap.php, вот так
protected function _initView()
{
$view = new Zend_View();
$view->doctype('XHTML1_STRICT');
$view->env = APPLICATION_ENV;
$view->addScriptPath(APPLICATION_PATH . '/views/scripts/brand1');
$view->addHelperPath(APPLICATION_PATH . '/views/helpers');
...
}
Однако, когда это выполняется, он ищет все представления, используя /views/scripts/brand1/(action).phtml вместо того, чтобы искать представления, используя правильную схему / view / scripts / brand1 / (controller) / (action) ) .phtml
tl; dr Можно ли динамически выбирать каталог представления и работать так же, как по умолчанию /views/scripts/(controller)/(action).phtml поведение?