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(
这是我的使用方法。