2010-01-13 2 views
1

Предположим, я устал от необходимости размещать папки шаблонов страниц под представлениями/сценариями и хочу просто поместить их под представлениями, оставив часть «скриптов» в пути. Как я могу изменить конфигурацию ZendFramework, чтобы разрешить мне это сделать?Как удалить папку views/scripts?

ответ

2

Попробуйте следующее:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
{ 

// ... 

    protected function _initView() 
    { 
     // Initialise the view 
     $view = new Zend_View(); 
     $view->addScriptPath(APPLICATION_PATH.'/views'); 

     // set the configured view as the view to be used by the view renderer. 
     $renderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer'); 
     $renderer->setView($view); 

     return $view; 
    } 

// ... 

} 

Предыдущий ответ отсутствует часть, где вы установили вид настроенную, чтобы иметь дополнительный путь сценария к View видеообработки.

HTH.

+0

Это действительно помогло! Потрясающие! Благодарю. – Volomike

+0

Рад, что так поступил, и вам будет приятно :) – rvdavid

+0

Моя вина. Я предположил, что он знает, как это сделать. – Gordon

1

См ZF Manual for Zend_View и поместите это в загрузчике:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
{ 
    protected function _initView() 
    { 
     $view = new Zend_View(); 
     $view->setScriptPath('/some/new/path'); // overwrite any paths 
     $view->addScriptPath('/some/other/path'); // adds additional paths 
     $view->setEncoding('UTF-8'); 
     $view->doctype('XHTML1_STRICT'); 
     $view->headMeta()->appendHttpEquiv(
      'Content-Type', 'text/html;charset=utf-8' 
     ); 
     $viewRenderer = 
     Zend_Controller_Action_HelperBroker::getStaticHelper(
      'ViewRenderer' 
     ); 
     $viewRenderer->setView($view); 
     return $view; 
    } 
} 

или configure your Ini for use with Zend_Application_Resource_View

resources.view.encoding = "UTF-8" 
resources.view.basePath = APPLICATION_PATH "/views/scripts" 
... 

Обратите внимание, что выбранный BasePath предполагает структуру каталогов:

base/path/ 
    helpers/ 
    filters/ 
    scripts/ 

См также это tutorial by Padraic Brady.

+0

Есть ли способ сделать это глобально в проекте, чтобы мне не нужно было добавлять это в каждый класс метода контроллера? – Volomike

+0

Да. См. Мое дополнение для размещения его в Ini – Gordon

+0

. Я установил ваше предложение INI в «/ views» вместо «/ views/scripts», а затем попытался в configs/application.ini в разделе «production». Это не сработало, а ошибки искали «скрипты». – Volomike

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