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 ...
随机推荐
- mysql JDBC URL格式
mysql JDBC URL格式如下: jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参 ...
- Google-解决在调试页面或者js时总是提示烦恼的断点问题
按F12键,然后切换到Source标签,看底下的那个跟暂停一样的图标是不是变成蓝色或紫色了? 如果是蓝色或者紫色,则把他切换到“灰色”状态(点击图标就会切换成不同的状态.或者可能是其他颜色状态),如下 ...
- sql- 别名alias(as)
alias (别名) 在 SQL 上的用处.最常用到的别名有两种: 栏位别名及表格别名. 简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读.在之前的例子中,每当我们有营业额总合时,栏位名都是 ...
- struts2理解
(1) Struts2(一)---struts2的环境搭建及实例 (2) struts2(二)---ModelDriven模型驱动 (3) Struts2属性驱动与模型驱动 (4)
- 【CodeForces 577B】Modulo Sum
题 题意 给你n(1 ≤ n ≤ 106)个数a1..an(0 ≤ ai ≤ 109),再给你m( 2 ≤ m ≤ 103)如果n个数的子集的和可以被m整除,则输出YES,否则NO. 分析 分两种情况 ...
- MyEclipse护眼模式、字体大小的调整
1.Eclipse改变背景颜色 Windows menu --> Preference General -> Editors -> Text Editors(click), 在底部 ...
- Java编程思想学习(十五) 注解
注解Annotation又叫元数据,是JDK5中引入的一种以通用格式为程序提供配置信息的方式.使用注解Annotation可以使元数据写在程序源码中,使得代码看起来简洁,同时编译器也提供了对注解Ann ...
- Eigenvectors and eigenvalues
http://setosa.io/ev/eigenvectors-and-eigenvalues/ Explained Visually Tweet By Victor Powell and Lew ...
- 分子量 (Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)
解题思路: 1.将分子量用double 数组记录下来 2.将字符串存储在字符数组中,从头向后扫描,一直记住“字母”,对下一个字符进行判断,是否是数字,如果是数字:用一个整数记录,本代码中用的sum,同 ...
- aop注解
注解 xml的直接配置 <aop:config proxy-target-class="false"> //切入点 <aop:pointcut expressio ...