phalcon setmainview cs革基在

phalcon: 开启模板缓存和缓存路径
时间: 15:39:00
&&&& 阅读:28
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
* 设置view
$di-&set(‘view‘, function () use ($config) {
$view = new \Phalcon\Mvc\View();
$view-&setViewsDir(BASE_PATH . $config-&home_application-&viewsDir);
$view-&registerEngines(array(
‘.phtml‘ =& function($view, $di) use ($config) {
$volt = new \Phalcon\Mvc\View\Engine\Volt($view, $di);
$volt -& setOptions(array(
‘compileAlways‘ =& true,
‘compiledPath‘
BASE_PATH . $config-&home_application-&compileDir,
  标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/achengmu/p/6894054.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!Phalcon View 多个渲染级别之间的关系 - 推酷
Phalcon View 多个渲染级别之间的关系
Phalcon 有多种渲染级别,他们的嵌套关系,简单来说就是这张图:
我们必须在外层视图文件中调用
&?php echo $this-&getContent(); ?&
的方法,使他们能够嵌套起来。如果是 volt 引擎的话,可以使用
{{ content() }}
,它经过 volt 编译后和前面的方法是一样的。
那为什么使用 getContent() 方法呢,我们先看一下源码中它的作用是什么
* Externally sets the view content
$this-&view-&setContent(&&h1&hello&/h1&&);
public function setContent(string content) -& &View&
let this-&_content =
* Returns cached output from another view stage
public function getContent() -& string
return this-&_
而 $this-&_content 是在什么时候被赋值的,我们需要了解 Phalcon 整个 view 层的渲染原理和过程:
我们可以通过
$this-&view-&setRenderLevel(View::LEVEL_MAIN_LAYOUT);
的方法选择渲染级别。
LEVEL_NO_RENDER
表明要避免产生任何形式的显示
LEVEL_ACTION_VIEW
生成显示到视图关联的动作
LEVEL_BEFORE_TEMPLATE
生成显示到控制器模板布局之前
LEVEL_LAYOUT
生成显示到控制器布局
LEVEL_AFTER_TEMPLATE
生成显示到控制器模板布局后
LEVEL_MAIN_LAYOUT
生成显示到主布局
我们可以在 controller 的 initialize() 方法中,使用下面的方法来指定 Level_After_Template 和 Level_Before_Template 对应的文件。
$this-&view-&setTemplateBefore('before');
$this-&view-&setTemplateAfter('after');
以渲染 testController helloAction 为例,它们的目录结构应该是这样
其中,views 根目录下的 index.phtml 是主布局文件。
layouts 文件夹下的三个文件分别对应,Level_After_Template、Level_Before_Template、Level_Layout。
test 文件夹是对应 testController 下每一个 action 的视图,hello 就是 testController 下 helloAction 对应的视图。
Level_Main_Layout 默认是 index.phtml 或 index.volt,后缀取决去你的模板渲染引擎,而且这个文件必须是视图文件夹的根目录下。我们可以可以通过
setMainView()
的方法指定为 views 根目录下的其他文件。
下面是有关的部分源码。
protected _mainView = &index&;
* Sets default view name.
* Must be a file without extension in the views directory
//Renders as main view views-dir/base.phtml
$this-&view-&setMainView('base');
public function setMainView(string viewPath) -& &View&
let this-&_mainView = viewP
* Returns the name of the main view
public function getMainView() -& string
return this-&_mainV
关于 view 的渲染原理和过程,参考我的另一篇博文:
更多细节参考官网文档:
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 set csuser 的文章

 

随机推荐