`
tomyjohn
  • 浏览: 7727 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

PHP框架三(视图)

 
阅读更多

上一节我们简单地实现了控制器。这一节我们实现一下视图。

这个视图文件非常简单。主要利用的就是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

    PHP的Yii框架中创建视图和渲染视图的方法详解_.docx

    视图view-ci(codeigniter)php框架_.docx

    视图view-ci(codeigniter)php框架_.docx

    PHP框架DoitPHP v1.5 SAE版

    DoitPHP(原Tommyframework)是一个基于BSD开源协议发布的轻量级PHP框架。简而言之:DoitPHP运行高效,易学易用,易于扩展。换而言之:DoitPHP运行高效而不失功能强大,操作灵活而又能扩展自如。作为PHP框架里的...

    视图View-CI(codeigniter)PHP框架__1.docx

    视图View-CI(codeigniter)PHP框架__1.docx

    CakePHP php框架 v3.7.8.zip

    CakePHP php框架简介 CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild...

    PhP框架DoitPHP v1.5 MySql版

    DoitPHP(原Tommyframework)是一个基于BSD开源协议发布的轻量级PHP框架。简而言之:DoitPHP运行高效,易学易用,易于扩展。换而言之:DoitPHP运行高效而不失功能强大,操作灵活而又能扩展自如。作为PHP框架里的...

    CakePHP php框架 v5.0.7

    CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild页面可以看到当前使用...

    CakePHP php框架 v3.7.0 beta1.zip

    CakePHP php框架简介 CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild...

    PHP框架Yaf.zip

    Yaf是一个C语言编写的PHP框架,Yaf 的特点: 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期...

    CakePHP php框架 v3.7.0 RC3.zip

    CakePHP php框架简介 CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用RubyonRails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild页面...

    CI(CodeIgniter)框架视图中加载视图的方法

    本文实例讲述了CI(CodeIgniter)框架视图中加载视图的方法。分享给大家供大家参考,具体如下: CI做为php的一个轻量级框架,其自身具备很多优点,在此我重点想说的是视图中加载视图。 1:在Application\config\...

    CakePHP php框架 v3.8.5

    主要特性:基于MVC架构视图支持Ajax内置校验框架提供应用程序的基础模块和CRUD 代码自动生成功能提供处理session,request,security的组件灵活的视图缓存功能面向对象无需配置:只要安装好数据库兼容PHP4和PHP5。

    PHP框架DoitPHP v3.0 正式版

    DoitPHP(原Tommyframework)是一个基于BSD开源协议发布的轻量级PHP框架。简而言之:DoitPHP运行高效,易学易用,易于扩展。换而言之:DoitPHP运行高效而不失功能强大,操作灵活而又能扩展自如。作为PHP框架里的...

    使用composer构建自己的简单的PHP框架,适合初学者

    使用PHP依赖管理工具Composer构建了自己的MVC框架,支持错误提示、视图装载、邮件配置、redis缓存管理。代码比较简单易读,适合初学者

    微型PHP框架FocusPHP.zip

    视图类需要实现Focus\MVC\View接口,框架内置了一套简单的视图实现Focus\MVC\SimpleView, 该实现使用.php文件作为视图文件模板,在模板文件中,直接使用原始的PHP语法即可。 默认视图Focus\MVC\SimpleView提供...

    PHP的Yii框架中创建视图和渲染视图的方法详解

    它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码和展示类PHP代码,通过yii\web\View应用组件来管理, 该组件主要提供通用方法帮助视图构造和渲染...

    PHP框架CXPHP.zip

    所以自己写一个MVC框架是很有必要的, 即使不是很完善,但是自己动手写一个轻量简洁的PHP MVC框架起码对MVC的思想有一定的了解,而且经过自己后期的完善会渐渐形成一个自己熟悉的一个PHP框架。 来写一个PHP MVC框架...

    PHP的Yii框架中View视图的使用进阶

    视图名以双斜杠 // 开头,对应的视图文件路径为 @app/views/ViewName, 也就是说视图文件在 yii\base\Application::viewPath 路径下找, 例如 //site/about 对应到 @app/views/site/about.php。 视图名以单斜杠/开始...

    一个非常牛的PHP框架 轻量级开源 效率高

    一个 PHP 敏捷开发框架,同样采用 MVC 设计模式和对象关系 有效的提高开发效率。 程序本身的设计更注重的是其核心性能 ...喜欢某些框架产生的那些后期难以维护和修改的设计,给你干净的视图文件,而不是难以理解的思想。

    laravel框架中视图的基本使用方法分析

    本文实例讲述了laravel框架中视图的基本使用方法。分享给大家供大家参考,具体如下: laravel中的视图默认保存在 resources\views 目录下。在控制器中,我们通常使用 view() 方法返回一个视图文件。 &lt;?php ...

Global site tag (gtag.js) - Google Analytics