• 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>

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

  • 相关阅读:
    oracle表解锁
    pl/sql 如何配置连接远程一个或多个数据库
    Hibernate通过自编写Sql修改
    Hibernate通过自编写sql查询
    java生成临时令牌和访问令牌
    java生成字母首位8位随机码
    [C] 创建目录_mkdir()函数
    [C] 判断目录 / 文件是否存在access()函数
    [C] getopt使用说明
    [C] Segmentation fault (core dumped)
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/3829778.html
Copyright © 2020-2023  润新知