繁体   English   中英

如何在Phalcon中设置volt编译目录路径?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM