php - phalcon中为什么用tools生成的单模块项目是volt引擎,但是多模块用的是.phtml呢?
怪我咯
怪我咯 2017-04-10 17:29:40
0
2
352

在phalcon中,用tools生成的单模块项目,默认是.volt

但是生成的多模块是.phtml

如何也让多模块也用.volt引擎呢?

ps:光改文件后缀不好使

怪我咯
怪我咯

走同样的路,发现不同的人生

reply all(2)
阿神

如果是这种项目结构

只需要将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之后用开发工具生成的目录不是这种结构了。

Peter_Zhu

$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;
                },
            ]
    );
    
    

这是我的使用方法。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!