codeigniter 视图

简介: 2014年7月7日 15:23:05 ci的视图功能很棒, 比如一个网页有四个部分组成,对应4个文件:header.php, sider.php, maincontent.php, footer .

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>

当然这样写还是有点儿繁琐,等到实践的时候再优化优化(*^__^*) 

目录
相关文章
|
2月前
|
数据处理 Python
Django视图:构建动态Web页面的核心技术
Django视图:构建动态Web页面的核心技术
|
3月前
|
C++ Python
Django视图函数VS类视图:如何选择最适合你的开发方式?
【8月更文挑战第31天】本文对比了Django中的函数视图和类视图。函数视图直接处理HTTP请求和响应,灵活且易于维护,适用于简单业务逻辑;类视图基于Python类,提供更丰富的功能和更高的灵活性,适合处理复杂业务逻辑。选择哪种视图取决于具体需求,合理使用两者可帮助你构建高效且易维护的Django应用。
54 0
|
6月前
|
缓存 API 数据库
Django中的视图装饰器:扩展视图功能的利器
【4月更文挑战第15天】Django视图装饰器用于扩展视图功能,如权限验证、缓存控制和日志记录。它们是Python的高级特性,能不修改原始函数代码就添加新功能。Django提供内置装饰器,如`@login_required`(强制用户登录)、`@cache_page`(缓存视图输出)和`@csrf_protect`(CSRF保护)。同时,开发者可自定义装饰器,例如上面的`timing_decorator`用于记录视图执行时间。使用装饰器时要注意性能影响、执行顺序和参数处理。装饰器增强了代码复用性和可维护性。
|
开发框架 前端开发 搜索推荐
Razor视图引擎
目前我们使用asp.net开发的过程中,接触了三种开发模式:一般处理程序(ashx),webform(aspx),mvc。具体关于asp.net的介绍,请看博客:[总览]Asp.net。 在学习mvc时,我对这两种搜索引擎机制:razor和winform有了新的理解。在mvc中添加视图时,不知道大家有没有注意到这两种视图的区别:
136 0
|
前端开发 JavaScript PHP
Yii2的视图是什么?底层原理是什么?
Yii2的视图是什么?底层原理是什么?
|
JavaScript PHP SEO
Laravel 视图 使用技巧总结
Laravel 搭建网站非常简单,相比于VUE等单页面项目,对SEO非常友好。Laravel 的 Blade 特性丰富,掌握 Blade 的使用技巧,能让我们的开发更快一步。
157 0
|
监控 中间件 程序员
关于开发视图
开发视图是逻辑视图的实现,它又叫实现视图,描述了在开发环境中软件的静态组织结构,主要侧重于软件模块的组织和管理。
710 0
关于开发视图
|
前端开发 PHP
Yii2框架(三)控制器及视图操作
首先,我们先将html页面的公共头尾抽成公共的文件。 Yii2.0框架是有公共布局选项这个设置的:advanced/backend/views/layouts/main.php这个文件就是公共模板文件,在我这里就是公共头尾。
203 0
Yii2框架(三)控制器及视图操作
|
JSON 缓存 前端开发
Django 用户接口设计之路由配置、视图函数 | 学习笔记
快速学习 Django 用户接口设计之路由配置、视图函数
247 0
Django  用户接口设计之路由配置、视图函数 | 学习笔记