84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
在phalcon中,用tools生成的单模块项目,默认是.volt
但是生成的多模块是.phtml
如何也让多模块也用.volt引擎呢?
ps:光改文件后缀不好使
走同样的路,发现不同的人生
如果是这种项目结构
只需要将services.php中的
$di->setShared('view', function () use ($config) { $view = new View(); $view->setViewsDir($config->application->viewsDir); $view->registerEngines(array( '.volt' => function ($view, $di) use ($config) { $volt = new VoltEngine($view, $di); $volt->setOptions(array( 'compiledPath' => $config->application->cacheDir, 'compiledSeparator' => '_' )); return $volt; }, //'.phtml' => 'Phalcon\Mvc\View\Engine\Php' // '.volt' => 'Phalcon\Mvc\View\Engine\Volt' )); return $view; });
剪切放在每个模块中的Modules.php中,替换
$di['view'] = function () { $view = new View(); $view->setViewsDir(__DIR__ . '/views/'); return $view; }
就ok了,,但是注意在Modules.php中要引入命名空间
use Phalcon\Mvc\View\Engine\Volt as VoltEngine;
不过在3.0之后用开发工具生成的目录不是这种结构了。
$view->registerEngines(
[ //".phtml" => 'Phalcon\Mvc\View\Engine\Php', '.phtml' => '\Phalcon\Mvc\View\Engine\Volt', '.volt' => function($view, $di) use ($config) { $volt = new \Phalcon\Mvc\View\Engine\Volt($view, $di); $volt->setOptions(['compiledPath' => $config->application->cacheDir . 'view/', 'compiledExtension' => '.compiled', 'compileAlways' => true ]); $compiler = $volt->getCompiler(); $compiler->addFilter('floor', 'floor'); $compiler->addFunction('range', 'range'); return $volt; }, ] );
这是我的使用方法。
如果是这种项目结构
只需要将services.php中的
剪切放在每个模块中的Modules.php中,替换
就ok了,,但是注意在Modules.php中要引入命名空间
不过在3.0之后用开发工具生成的目录不是这种结构了。
$view->registerEngines(
这是我的使用方法。