簡體   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