CI下载与安装_基础配置_MVC

CI:CodeIgniter -- 由Ellislab公司的CEORickEllis开发,是一个简单快速的PHP MVC框架。

=============下载和安装================
地址:http://codeigniter.org.cn/download
版本:目前的稳定版本为3.X
在线手册:http://codeigniter.org.cn/user_guide/general/welcome.html

=============目录结构==================
|-application:应用文件夹
|- config:配置文件
|- cache:缓存文件
|- MVC:...
|- helpers:辅助函数
|- libraries:类库
|-...
|
|-system:系统文件夹
|-user_guide:用户手册(可以删除)
|-index.php:CI的入口文件
* 唯一一个让浏览器直接请求的文件
* 在入口文件中定义开发环境
* 定义项目目录,视图目录等信息
* 加载框架的入口文件

============默认路由===================
路由:一个指定访问路径的字符串

* 所有请求都是通过入口文件开始,通过URL传递过来的信息去找到对应的控制器和操作,再由控制器去找到对应的视图文件(MVC)
* 默认路由是在appliction/config/routes.php中
* 默认指向的控制器是Welcome
* default_controller:默认控制器
404_override:当发生404错误时的操作
translate_uri_dashes:是否解析-为_

============控制器===================

Controller的建立:
1 找到application/controllers,新建自己的controller页面(.php后缀)
2 类名同文件名,类名首字母大写
3 继承CI_Controller,确保你的控制器扩展自父控制器类
4 保留字的问题(手册-常规主题-保留名称)
5 如果重写构造方法,一定要调用父类的构造方法(parent::__construct())
* 访问的时候url地址不分大小写,index()方法默认加载


============配置文件=================
CI的配置文件:application/config目录下
autoload.php:自动加载配置信息
config.php:项目配置文件
constants.php:项目中的常量
database.php:数据库配置信息
doctypes.php:文档类型对应的头部信息
foreign_chars:外国文字对应
hooks.php:钩子配置
memcached:memcached的配置信息
migration.php:文件对应的http类型
routes.php:路由配置文件
smileys.php:特殊字符对应的图片
user_agents.php:用户的浏览器对应的系统
profiler.php:程序分析的配置

-----
* CI在项目运行时会自动加载config.php,在代码中可以使用config_item()函数获取配置
* CI中提供了config类来获取配置信息:$this->config->item("配置信息")
* 可以在代码中动态设置配置信息:$this->config->item("配置项","值")

 


=======URL路由规则和自定义路由========

CI中URL的处理(pathinfo):
http://localhost/work/index.php/控制器名/方法名/参数1/参数2....
默认控制器:welcome
默认方法:index

*修改默认控制器:application-config-routes.php(路由管理文件)

-----
自定义URI -- 在配置文件中指定自定义路由
1.在routes.php中添加规则
例:$route["welcome/25"] = "welcome/index/25" -- url访问时:IP/工程名/index.php/welcome/25
** 键所对应的URI才是真正需要访问的路径
2.使用通配符进行值匹配 -- :num 用于匹配所有数字
-- :any 用于匹配任意字符
例:$route["welcome/(:num)"] = "welcome/index/$1";

3.使用正则表达式:
例:$route["welcome/(\d+)"] = "welcome/index/$1"

4.URI中使用回调函数:
$route["welcome/index/(\d+)"] = function($id){
return "welcome/index/".$id;
}


=================URL辅助函数========================================
1.要使用URL的辅助函数,需要先加载URL帮助类:$this->load->helper("url");
2.常用函数:site_url(路由):生成url地址,通过指定的路由和配置信息
base_url():生成URL地址
current_url():返回当前完整URL
uri_string():返回URI分段内容(路由)


除了每个方法中单独配置,可以设置自动加载:
application/config/autoload.php
去搜索键为helper的数组配置,把帮助函数写到数组值中即可

=================视图======================
* CI默认使用php文件来作为视图文件
* 在application/views目录下创建视图文件,可以创建子目录

载入视图:

加载视图:$this->load->view("页面名")

注意:
1 视图是php文件则页面名直接写,可以不用带后缀,会自动补全.php
2 视图是html,就必须把后缀带上
3 同一个方法中可以执行多次该语句,会依次将视图文件载入
注意:如果同一个控制器加载了多个视图,变量只需要赋值一次,其他模板都可以进行使用
4 view方法后面可以跟第二个参数,即分配的变量(数组)
例:$data = array("name"=>"lily")
$this->load->view("test.php",$data)

视图文件中:<?php echo $name;?> -- 直接使用数组的索引作为变量名进行使用
注意:CI的视图文件中,支持变量名简写输出:<?=$name ?>

变量分配:$this->load->vars(变量)

-----视图中的流程控制-----
if(){..} --> if(): ... endif;

foreach(): ... endforeach;


=================模型======================
模型层:
1.在application/models下创建类文件,并继承CI_Model

2 控制器中调用模型层:
1)加载模型层:$this->load->model("User");//User类加载到控制器层中
$this->load->model("User","u");//在上面加载的基础上再进行模型层的取别名的操作,别名:u
* 加载模型后,模型会成为超级对象的属性
* 如果你的模型层包含子目录,那么在加载模型的时候,必须写明目录结构,例如:
$this->load->model("test/User");

2)调用模型层的方法:
没有取别名:$this->User->模型层中的方法()
取别名(可以使用别名作为$this的属性,再调用方法):$this->u->模型层中的方法()

-----自动加载模型-----
如果程序中有很多地方需要使用到模型,那么可以在config/autoload.php中配置模型为自动加载

$autoload["model"] = array("User");


=====================输入类==============================
form:
action:
site_url("控制器/方法")--http://localhost/work/index.php/控制器/方法
获取值:
post:$this->input->post("前台的控件的Name");
get:$this->input->get("前台的控件的Name");
cookie:$this->input->cookie("cookie的名字");

posted @ 2017-10-24 10:22  php_小学生  阅读(451)  评论(0编辑  收藏  举报