CI(CodeIgniter)框架结构介绍

目录结构说明

  • license.txt 许可协议
  • user_guide 用户手册
  • system 框架核心文件
  • application 应用目录
  • index.php 入口脚本文件

CI中的MVC架构

  • 入口文件:唯一一个让浏览器直接请求的脚本文件
  • 控制器(controller):协调模型和视图
  • 模型(model):提供数据,保存数据
  • 视图(view):搜集用户输入、创建并提交表单、做显示作用
  • 动作(action):是控制器中的公开方法,用于被浏览器请求

访问URL形式:CI框架采用的是一种pathinfo的url访问形式,如:localhost/index.php/Welcome/index。从这个例子可以知道访问的是Welcome控制器中的index方法。可以认为url的结构是这样的:IP/入口脚本文件/控制器/动作。

application目录:

  • controllers 控制器
  • models 模型
  • views 视图
  • 当第一次使用CI框架时,默认的控制器为Welcome,默认动作为index。

CI中的控制器

  • 在CI框架中,控制器在定义时不用加上controller后缀,控制器的名字和定义的类名一致;
  • 在定义一个新的控制器时,需要直接或者间接继承CI_Controller类;
  • 在类中,只有public关键字修饰的方法才能作为被浏览器访问的动作。

CI中的视图

  • 在CI框架中,若要加载一个视图文件,如welcome_message.php文件,需要使用$this->load->view(‘welcome_message’)方法进行视图加载。

  • CI框架与其它框架在视图编辑上不同。CI框架使用原生的PHP来编辑视图,不使用像smarty之类的模板引擎。

    //一个简单的原生PHP表格
    <table border="l">
    	<tr>
    		<td>编号</td>
    		<td>姓名</td>
    		<td>邮箱</td>
    	</tr>
    	<?php foreach($list as $item):?>
    	<tr>
    		<td><?=$item['id']?></td>
    		<td><?=$item['name']?></td>
    		<td><?=$item['mail']?></td>
    	</tr>
    	<?php endforeach;?>
    </table>
    

CI中的超级对象($this) 持续更新。。。。。。

  • CI框架的$this对象是一个控制器对象,包含有很多属性,我们定义的控制器对象依赖于这些属性来提供服务。

  • $this->load:一个加载器,通过$this->load->view('文件');来加载一个视图。装载器的实例在文件 system/core/Loader.php文件中定义。该属性可以用于加载视图 (view())、分配变量到视图(vars())、装载数据库对象(database())、装载模型对象(model())、装载插件(helper())。

  • $this->uri:是CI_URI类的实例,用于实现与URL相关的功能。可以通过$this->uri->segment(n);来获取URL中第n段的值(这与CI框架采用pathinfo形式的URL有关)。传统的URL:入口文件/控制器/动作/参数1/值1/参数2/值2…,而为了简便URL,则采用的URL形式为:入口文件/控制器/动作/值1/值2…,这样的URL可以使用$this->uri->segment(n);来取第n段的值。

    //URL: .../入口文件/控制器/动作/值1/值2
    $this->uri->segment(3);//值1
    $this->uri->segment(4);//值2
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章