#phalcon-入门篇9(view层基础使用)#php
本教程基于phalcon2.0.9版本html
##前言## 先在这里感谢各位phalcon技术爱好者,咱们提供这样一个优秀的交流平台git
哈喽你们好呀,期待已久的第9篇终于和你们见面了,时隔半个多月在之间小编对编写phalcon的语言zephir进行了文档译文讲解以及在忙这工做上的一系列事情因此在这里给你们道个歉迟来了这么久,那么今天的主要类容是简单的介绍一下基本的view层在phalcon中要如何的运用,话很少说让咱们开始今天的旅程把!布局
注:笔者水平有限,说的不正确的地方但愿你们多多指正,一同交流技术this
附上:.net
喵了个咪的博客:http://w-blog.cncode
教程代码库:http://git.oschina.net/wenzhenxi/Phalcon-tutorialhtm
phalcon官网地址:https://phalconphp.comblog
phalcon中文社区:http://www.iphalcon.cn/教程
##1. 分层渲染##
分层渲染顾名思义,就是在把不一样层模版结合在一块儿渲染成一个总体的模版,一个很恰当的例子就是一个公司官网他的标题都是通用的,他的上面的菜单栏也是通用的,可是当在写莫一个模块中的莫一个页面的时候这些公用的地方还须要重写吗,这个答案固然是不,phalcon也很巧妙的考虑到了这一点,咱们来看看它的分层渲染机制是怎样的
###1.1 分层渲染###
按照往常的规范咱们建议一个名为ViewController的控制器而后填充代码以下:
<?php use Phalcon\Mvc\Controller; class ViewController extends Controller { public function indexAction($Id) { $this->view->Id = $Id; } }
接着咱们准备咱们的view层的结构:
你们能够看到咱们view对应的应该是view/index.phtml,那么layouts和根目录的index.phtml是干吗的呢?先别着急咱们先给这三个文件填充一下类容:
view/index.phtml:
<h3>这个是view控制器的index模版!</h3> <p>这里有个参数是 <?php echo $Id; ?></p>
layouts/View.phtml**(注意若是要对view模块生效必须同名)**:
<h2>这个是view控制器的布局文件!</h2> <?php echo $this->getContent(); ?>
index.phtml:
<html> <head> <title>Example</title> </head> <body> <h1>这个是默认的布局文件!</h1> <?php echo $this->getContent(); ?> </body> </html>
而后接着咱们来运行一下看看结果如何:
http://phalcon.w-blog.cn/phalcon/View/index/5
从这个地方能够看出渲染程序先进入了index.phtml在index.phtml的代码中引入了layouts/View.phtml中的代码,而后在layouts/View.phtml中映入了咱们控制器中输出了参数的代码,这样就是一个完整的分层渲染的逻辑了,你们能够好好体会一下!
###1.2 使用模版###
那么有人问了我要是在view模块中也一样复用其余模块的layouts咋办呢,那么在这里就有一控制渲染的已经小技巧了
咱们在控制器中加入以下代码:
public function initialize() { $this->view->setTemplateAfter('common'); }
而后在layouts文件夹下面建立common.phtml加入以下代码:
<h2>这个是common控制器的布局文件!</h2> <?php echo $this->getContent(); ?>
而后咱们在运行
http://phalcon.w-blog.cn/phalcon/View/index/5
咱们会发现不单单调用了layouts中的view.phtml并且也使用了common.phtml
$this->view->setTemplateBefore('common')和$this->view->setTemplateAfter('common')能够控制渲染顺序
##2. 选择视图##
当咱们在作不少项目的时候每每不少页面是复用的,虽然咱们制定了不少不一样的Action可是要怎么通用一个模版呢,phalcon咋这里提供了一个模版选择的功能,你能够选择渲染制定的一个模版
方法以下:
public function indexAction($Id) { $this->view->pick("Index/index"); $this->view->Id = $Id; }
这个时候制定了pick以后咱们在此请求的内容就变成以下结果了:
##3. 小结##
应为小编并非特别擅长view层的使用,因此还有部分小编以为不是过重要的类容并无涉及到,有兴趣的同窗能够参考官方文档,那么今天的教程就到这里的多谢你们的关注!
注:笔者能力有限有说的不对的地方但愿你们可以指出,也但愿多多交流!
Phalcon技术交流:364520707 PhalCon中文社区:287484785 欢迎你们的加入!