gpt4 book ai didi

php - 在Phalcon中如何设置volt编译后的目录路径?

转载 作者:行者123 更新时间:2023-12-02 05:25:26 25 4
gpt4 key购买 nike

我有以下代码:

    $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 是可写的。您无需完全遵循上述方法 - 您始终可以将配置变量替换为您的应用程序需要的任何内容。

关于php - 在Phalcon中如何设置volt编译后的目录路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com