上一节我们简单地实现了控制器。这一节我们实现一下视图。
这个视图文件非常简单。主要利用的就是ob_start() ,ob_get_content();这个文件位于includes文件夹内
view.php
<?php
class view{
//视图类型 default / wap
public static $view_type = null;
public function __construct(){
ob_start();
}
public function finish(){
$content = ob_get_contents();
return $content;
}
public static function set_view_type(){
switch(true){
case stripos($_SERVER['HTTP_USER_AGENT'], 'Windows CE') !== FALSE : self::$view_type = 'wap'; break;
default : self::$view_type = 'default';
}
}
public static function show($location , $param = array()){
if(is_null(self::$view_type)){
self::set_view_type();
}
$view = SIMPLE_PATH . '/view/' . self::$view_type . '/' . $location;
extract($param, EXTR_OVERWRITE);
ob_start();
file_exists($view) ? require $view : exit($view . ' 不存在');
$content = ob_get_contents();
return $content;
}
}
对于OB函数,我们可以简单地认为,在PHP编译之后,它不会立刻返回到页面,而是先放到缓冲区。
上述视图只是做了一个简单的实现,如果我们要扩展它,可以完善set_view_type()方法,也可以增加缓存,还可以增加模板的支持。
具体实现我会在以后的章节加上,今天我们试着使用一下这个VIEW。
还是昨天controller文件夹下的index.php 文件
<?php
class index{
public function demo(){
view::show('index.htm' , array('message' => 'HELLO WORLD'));
}
}
然后再在view文件夹内新建一个default文件夹,再在新建一个index.htm
<html>
<head>
<title></title>
</head>
<body>
<?php
echo $message;
?>
</body>
</html>
我们运行站点,便可以看到结果,“HELLO WORLD”。
我觉得这个结果,便是每个程序员对新的思想的一种见证。
如果在这个文件中,你还想插入头部,或尾部,只要再新建一个head.htm。然后再在index.htm中加入
<html>
<head>
<title></title>
</head>
<body>
<?php
echo $message;
view::show('head.htm');
?>
</body>
</html>
就可以实现公共部分的加入了。
至此,我们这个小型的视图类就实现了。
大家可自行去实验,如果不行,我们再交流。
下一节就是我以前在BLOG里介绍的DAO层,即MODULES。
分享到:
相关推荐
PHP的Yii框架中创建视图和渲染视图的方法详解_.docx
视图view-ci(codeigniter)php框架_.docx
DoitPHP(原Tommyframework)是一个基于BSD开源协议发布的轻量级PHP框架。简而言之:DoitPHP运行高效,易学易用,易于扩展。换而言之:DoitPHP运行高效而不失功能强大,操作灵活而又能扩展自如。作为PHP框架里的...
视图View-CI(codeigniter)PHP框架__1.docx
CakePHP php框架简介 CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild...
DoitPHP(原Tommyframework)是一个基于BSD开源协议发布的轻量级PHP框架。简而言之:DoitPHP运行高效,易学易用,易于扩展。换而言之:DoitPHP运行高效而不失功能强大,操作灵活而又能扩展自如。作为PHP框架里的...
CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild页面可以看到当前使用...
CakePHP php框架简介 CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild...
Yaf是一个C语言编写的PHP框架,Yaf 的特点: 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期...
CakePHP php框架简介 CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用RubyonRails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild页面...
本文实例讲述了CI(CodeIgniter)框架视图中加载视图的方法。分享给大家供大家参考,具体如下: CI做为php的一个轻量级框架,其自身具备很多优点,在此我重点想说的是视图中加载视图。 1:在Application\config\...
主要特性:基于MVC架构视图支持Ajax内置校验框架提供应用程序的基础模块和CRUD 代码自动生成功能提供处理session,request,security的组件灵活的视图缓存功能面向对象无需配置:只要安装好数据库兼容PHP4和PHP5。
DoitPHP(原Tommyframework)是一个基于BSD开源协议发布的轻量级PHP框架。简而言之:DoitPHP运行高效,易学易用,易于扩展。换而言之:DoitPHP运行高效而不失功能强大,操作灵活而又能扩展自如。作为PHP框架里的...
使用PHP依赖管理工具Composer构建了自己的MVC框架,支持错误提示、视图装载、邮件配置、redis缓存管理。代码比较简单易读,适合初学者
视图类需要实现Focus\MVC\View接口,框架内置了一套简单的视图实现Focus\MVC\SimpleView, 该实现使用.php文件作为视图文件模板,在模板文件中,直接使用原始的PHP语法即可。 默认视图Focus\MVC\SimpleView提供...
它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码和展示类PHP代码,通过yii\web\View应用组件来管理, 该组件主要提供通用方法帮助视图构造和渲染...
所以自己写一个MVC框架是很有必要的, 即使不是很完善,但是自己动手写一个轻量简洁的PHP MVC框架起码对MVC的思想有一定的了解,而且经过自己后期的完善会渐渐形成一个自己熟悉的一个PHP框架。 来写一个PHP MVC框架...
视图名以双斜杠 // 开头,对应的视图文件路径为 @app/views/ViewName, 也就是说视图文件在 yii\base\Application::viewPath 路径下找, 例如 //site/about 对应到 @app/views/site/about.php。 视图名以单斜杠/开始...
一个 PHP 敏捷开发框架,同样采用 MVC 设计模式和对象关系 有效的提高开发效率。 程序本身的设计更注重的是其核心性能 ...喜欢某些框架产生的那些后期难以维护和修改的设计,给你干净的视图文件,而不是难以理解的思想。
本文实例讲述了laravel框架中视图的基本使用方法。分享给大家供大家参考,具体如下: laravel中的视图默认保存在 resources\views 目录下。在控制器中,我们通常使用 view() 方法返回一个视图文件。 <?php ...