84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
在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(
这是我的使用方法。