codeigniter 视图
2014年7月7日 15:23:05
ci的视图功能很棒,
比如一个网页有四个部分组成,对应4个文件:header.php, sider.php, maincontent.php, footer .php
不用PHP的include,可以
1 this->load->view('header.php');
2
3 this->load->view('sider.php');
4
5 this->load->view('maincontent.php');
6
7 this->load->view('footer.php');
这样的好处是: 如果header.php, sider.php, footer.php是经常要用到的, 而maincontent.php是根据每个controller/action的不同而改变的,
可以写一个方法集成并扩展 this->load->view,在扩展的内部自动执行第1,3,7行,而将maincontent.php这类的文件名当作参数传进来
这样就减少了重复include的代码
用了smarty再使用ci的view,才觉得"PHP是最好的模版语言"真是对的
使用smarty还是用原生的PHP做视图语言,还要看框架哪个方便
----------------------------
PHP真是个大融合的语言
如果PHP类class A 里没有成员变量$a, 那么在$objA = new A;生成的对象中直接$objA->a = 111; 对象$objA里就有了成员变量$a;
1 <?php
2
3 class A
4 {
5 public $a = 123;
6 }
7
8 $objA = new A;
9
10 echo '<pre>';
11 echo "//对象成员变量<br>";
12 print_r(get_object_vars($objA));
13 echo "//类成员变量<br>";
14 print_r(get_class_vars('A'));
15 $objA->b = 111;
16
17 echo "//对象成员变量<br>";
18 print_r(get_object_vars($objA));
19 echo "//类成员变量<br>";
20 print_r(get_class_vars('A'));
21
22 var_dump($objA->b);exit;
1 //对象成员变量
2 Array
3 (
4 [a] => 123
5 )
6 //类成员变量
7 Array
8 (
9 [a] => 123
10 )
11 //对象成员变量
12 Array
13 (
14 [a] => 123
15 [b] => 111
16 )
17 //类成员变量
18 Array
19 (
20 [a] => 123
21 )
22 int(111)
像是javascript的功能;
注意: 对象中有了这个自动添加的变量,但是类中是没有这个变量的,不可能,也不应该有
有了这个功能,我想能不能把用来给模版赋值的变量抽出来,
所有视图中的变量都从第三方对象读;
这个第三方对象里的模版变量由controller/action用上边PHP用法去添加
1 <?php
2
3 class Controller extends SuperController
4 {
5
6 public function __construct()
7 {
8 $this->objViewData = new ViewData;
9 }
10
11 public function action()
12 {
13 $this->objViewData->a = 1234;
14 $this->load_view('view.php');
15 }
16
17 }
18 ?>
19
20 //view.php
21
22 <body>
23 <?= $objViewData->a ?>
24 </body>
当然这样写还是有点儿繁琐,等到实践的时候再优化优化(*^__^*)
codeigniter 视图的更多相关文章
- [CI]CodeIgniter视图 & 模型 & 控制器
---------------------------------------------------------------------------------------------------- ...
- codeigniter视图
怎么加载视图? 例如我们有一个视图在 application/views/welcome.php public function index() { $this->load->view(' ...
- codeigniter框架扩展核心类---实现前台后台视图的分离
1. 扩展核心类,主要作用就是扩展系统现在的功能. 为前台增加独立的视图文件夹: a. 自定义路径常量 :在application ->config/ constants.php中增加 /*m ...
- 一步一步重写 CodeIgniter 框架 (8) —— 视图的嵌套输出与返回
视图函数在控制器中通过 $this->load-view() 来调用,从而输出 html,有时候为了调试或附加处理的需要,我们需要打印出这些输出,而不是直接通过浏览器输出,这在 php 中是通过 ...
- CodeIgniter框架——CI中视图路径问题
答: 视图中的所有路径全部和 index.php 同级,也就是和 index.php 属于一个目录下,也就是网站根目录. 因为 index.php 后面看似是路径的东西其实那只是一种 URL 参数而已 ...
- CodeIgniter学习笔记一:基本结构、控制器、视图、超级对象、数据库
一.基本结构 CodeIgniter3.0.0解压后有8个文件,分别是: application:项目文件 system:系统(框架)文件,为方便升级,不建议修改 user_guid:用户手册,不需要 ...
- 008.CI4框架CodeIgniter, Controller控制器传输参数到View视图
01. 在CI4中输出VIEW视图,并且传入参数,代码如下: <?php namespace App\Controllers; class Home extends BaseController ...
- 005.CI4框架CodeIgniter, 通过带路径的view视图访问
01. 我们在app目录的Views文件夹中新建一个Login文件,再创建一个login.php文件,在里面我们写上如下代码: <!doctype html> <html> & ...
- CodeIgniter 3 源码学习笔记《一》
CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包. 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构.通过减少代码量,Co ...
随机推荐
- Java Filter过滤器的简单总结
1.Filter的介绍 Filter技术是servlet 2.3新增加的功能.它能够对Servlet容器的请求和响应对象进行检查和修改. Filter本身并不生成请求和响应对象,只是提供过滤功能. F ...
- 什么是POJO?
本文转载自百度文库,详细出处请参考: http://wenku.baidu.com/view/4a9ad533ee06eff9aef80765.html 我认为写的很准确,很抱歉没有找到作者的名字! ...
- myeclipse 配置weblogic
1.打开myeclipse,选择Window -> Preferences--->MyEclipse--->servers 2.点击servers---->weblogic-- ...
- DLUTOJ 1331 Maximum Sum
传送门 Time Limit: 1 Sec Memory Limit: 128 MB Description You are given an array of size N and anothe ...
- Activity启动模式 及 Intent Flags 与 栈 的关联分析
http://blog.csdn.net/vipzjyno1/article/details/25463457 Android启动模式Flags栈Task 目录(?)[+] 什么是栈 栈 ...
- 输入你的性别,身高及体重,判断你的身材是否标准。(用if......else语句)
Console.WriteLine("请输入你的性别,身高和体重:"); string s = Console.ReadLine(); double h = double.Pars ...
- C文件操作(全)
引用自:http://www.cnblogs.com/whiteyun/archive/2009/08/08/1541822.html 文件 文件的基本概念 所谓“文件”是指一组相关数据的有序集合. ...
- memcache内存分配机制
memcached的内存分配没有用到c语言中自带的malloc函数,因为这个函数分配内存的时候效率很低,对于这种要求快速响应,对效率要求非常高的缓存软件来说非常不合适. memcached用的是自己的 ...
- Lua函数之二
Lua函数之二 Lua中函数的两个重要特性: 1.函数和其他类型(如number.string)一样,可以存放在变量中,也可以存放在table中,可以作为函数的参数,还可以作为函数的返回值. 2.嵌套 ...
- linux+apache url大小写敏感问题
Linux对文件目录大小写敏感,URL大小写敏感会导致网页打不开,解决方法之一是启用Apache的mod_speling.so模块. 1.确认/usr/lib/httpd/modules目录下是否存在 ...