[英]How do I set the volt compiled directory path in Phalcon?
我有以下代碼:
$di->set('view', function() {
$view = new \Phalcon\Mvc\View();
$view->setViewsDir('../app/views/');
$view->registerEngines(array(
".phtml" => 'Phalcon\Mvc\View\Engine\Volt'
));
return $view;
});
但是現在,已編譯的PHP駐留在views目錄中。 如何為已編譯目錄設置其他路徑?
您可以按如下方式設置新的compiledPath
和其他選項:
假設您的配置中包含以下變量:
[views]
path = '/home/user/www/app/views/'
[volt]
path = '/home/user/www/app/volt/'
extension = '.compiled'
separator = '%%'
stat = 1
然后,您可以根據手冊進行操作:
// Assuming that this is in a class and `_di` is your DI container
$config = $this->_di->get('config');
$di = $this->_di;
/**
* Setup the volt service
*/
$this->_di->set(
'volt',
function($view, $di) use($config)
{
$volt = new Volt($view, $di);
$volt->setOptions(
array(
'compiledPath' => $config->app->volt->path,
'compiledExtension' => $config->app->volt->extension,
'compiledSeparator' => $config->app->volt->separator,
'stat' => (bool) $config->app->volt->stat,
)
);
return $volt;
}
);
/**
* Setup the view service
*/
$this->_di->set(
'view',
function() use ($config, $di)
{
$view = new \Phalcon\Mvc\View();
$view->setViewsDir(ROOT_PATH . $config->app->path->views);
$view->registerEngines(array('.volt' => 'volt'));
return $view;
}
);
或者您可以按照以下實施方式(最好是上面的一種)
$di->set('view', function() use ($config, $di) {
$view = new \Phalcon\Mvc\View();
$view->setViewsDir($config->views->path);
$volt = new \Phalcon\Mvc\View\Engine\Volt($view, $di);
$volt->setOptions(
array(
'compiledPath' => $config->volt->path,
'compiledExtension' => $config->volt->extension,
'compiledSeparator' => $config->volt->separator,
'stat' => (bool) $config->volt->stat,
)
);
/**
* Register Volt
*/
$view->registerEngines(array('.volt' => $volt));
return $view;
});
確保$config->volt->path
是可寫的。 您不需要完全遵循上述方法-您始終可以將配置變量替換為您的應用程序所需的任何內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.