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 视图的更多相关文章

  1. [CI]CodeIgniter视图 & 模型 & 控制器

    ---------------------------------------------------------------------------------------------------- ...

  2. codeigniter视图

    怎么加载视图? 例如我们有一个视图在 application/views/welcome.php public function index() { $this->load->view(' ...

  3. codeigniter框架扩展核心类---实现前台后台视图的分离

    1. 扩展核心类,主要作用就是扩展系统现在的功能. 为前台增加独立的视图文件夹: a. 自定义路径常量 :在application ->config/  constants.php中增加 /*m ...

  4. 一步一步重写 CodeIgniter 框架 (8) —— 视图的嵌套输出与返回

    视图函数在控制器中通过 $this->load-view() 来调用,从而输出 html,有时候为了调试或附加处理的需要,我们需要打印出这些输出,而不是直接通过浏览器输出,这在 php 中是通过 ...

  5. CodeIgniter框架——CI中视图路径问题

    答: 视图中的所有路径全部和 index.php 同级,也就是和 index.php 属于一个目录下,也就是网站根目录. 因为 index.php 后面看似是路径的东西其实那只是一种 URL 参数而已 ...

  6. CodeIgniter学习笔记一:基本结构、控制器、视图、超级对象、数据库

    一.基本结构 CodeIgniter3.0.0解压后有8个文件,分别是: application:项目文件 system:系统(框架)文件,为方便升级,不建议修改 user_guid:用户手册,不需要 ...

  7. 008.CI4框架CodeIgniter, Controller控制器传输参数到View视图

    01. 在CI4中输出VIEW视图,并且传入参数,代码如下: <?php namespace App\Controllers; class Home extends BaseController ...

  8. 005.CI4框架CodeIgniter, 通过带路径的view视图访问

    01. 我们在app目录的Views文件夹中新建一个Login文件,再创建一个login.php文件,在里面我们写上如下代码: <!doctype html> <html> & ...

  9. CodeIgniter 3 源码学习笔记《一》

    CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包. 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构.通过减少代码量,Co ...

随机推荐

  1. 缓存插件 EHCache

    EHCache是来自sourceforge(http://ehcache.sourceforge.net/)的开源项目,也是纯Java实现的简单.快速的Cache组件. 下载jar包 Ehcache ...

  2. Java 线程并发策略

    1 什么是并发问题. 多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发问题. 2 java中synchronized的用法 用法1 public class Test{ public ...

  3. python逐行读写

    代码: fileReadObj = open("input.txt") fileWriteObj = open("output.txt", 'w') fileL ...

  4. session共享

    Nginx或者Squit反向代理到两台tomcat服务器 tomcat使用memcached tomcat连接memcached工具 cp session/*.jar /usr/local/tomca ...

  5. POJ2187 Beauty Contest

    Description Bessie, Farmer John's prize cow, has just won first place in a bovine beauty contest, ea ...

  6. Treap实现山寨set

    treap插入.删除.查询时间复杂度均为O(logn) treap树中每个节点有两种权值:键值和该节点优先值 如果只看优先值,这棵树又是一个堆 treap有两种平衡方法:左旋&右旋 inser ...

  7. POJ 2182 Lost Cows

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10996   Accepted: 7059 Description N (2 ...

  8. WDCP(WDlinux Control Panel) mysql/add_user.php、mysql/add_db.php Authentication Loss

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 http://www.wooyun.org/bugs/wooyun-2010-06 ...

  9. 用Filter程序实现静态HTML页面的访问保护

    今天为练习Filter的用法编写了一个小程序. 当用户通过article的超链接读取文章的时候,会通过Filter进行检测有没有登录.只有登录的读者才能跳到文章页面,否则跳到登录页面. 文章就用简单的 ...

  10. ExtJS入门教程05,grid的异步加载数据

    上一篇演示了extjs grid的基本用法,并加载了本地数据.今天我们将演示如何加载异步数据. 所谓异步,就是通过ajax的方式将服务器端的数据加载到我们的grid中.为了提供数据,我们先定义一个数据 ...