CI 笔记一
CodeIgniter
说明
CodeIgniter 是为PHP 开发人员提供的一套Web 应用程序工具包。它的目标是能
够让你比从零开始更加快速的完成项目,它提供了一套丰富的的类库来满足我们日常
的任务需求,并且提供了一个简单的接口和逻辑结构来调用这些库
安装
- 解压缩安装包
- 将CodeIgniter 文件夹及里面的文件上传到服务器,通常index.php 文件将位于
网站的根目录; - 使用文本编辑器打开application/config/config.php 文件设置你网站的根URL,
如果你想使用加密或会话,在这里设置上你的加密密钥; - 如果你打算使用数据库,打开application/config/database.php 文件设置数据库
参数。 - 主目录下index.php的$system_path,$application_folder,$view_folder分别表示系统路径,
应用路劲及视图路径,默认为system,application及application/views
流程
- index.php 文件作为前端控制器,初始化运行CodeIgniter 所需的基本资源;
- Router 检查HTTP 请求,以确定如何处理该请求;
- 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;
- 在加载应用程序控制器之前,对HTTP 请求以及任何用户提交的数据进行安全
检查; - 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;
- 最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用
于后续的请求。
MVC
示例 访问如下路由
http://example.com/Home/Index
Control
在 application/controllers 下创建一个文件Home.php,代码如下:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
//类名称必须大写
class Home extends CI_Controller {
public function index()
{
$this->load->view('index.php');
}
}
?>
VIEW
在 application/views 下创建一个文件index.php,代码如下:
<!DOCTYPE html>
<html>
<head>
<title>demo</title>
</head>
<body>
<p>demo</p>
</body>
</html>
MODEL
通过视图加载方法的第二个参数可以从控制器中动态的向视图传入数据,这个参数
可以是一个数组或者一个对象,利用$data传递"hello world"字符串到视图中,修改代码如下
controler:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
public function index()
{
$data['str'] = 'hello world';
$this->load->view('index.php',$data);
}
}
?>
view:
<!DOCTYPE html>
<html>
<head>
<title>demo</title>
</head>
<body>
<p><?php echo $str;?></</p>
</body>
</html>
路由
基本路由格式
http://example.com/[controller-class]/[controller-method]/[arguments]
1. 第一段表示要调用的控制器类;
2. 第二段表示要调用的类中的函数或方法;
3. 第三段以及后面的段代表传给控制器的参数,如ID 或其他任何变量;
修改路由配置文件(application/config/routes.php),可以创建新的路由规则,例如
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
CI 笔记一的更多相关文章
- CI 笔记,借鉴的4个辅助自定义函数
在System的core的common.php中,借鉴的4个自定义函数, 摘自后盾网的CI教程 /** * 格式化打印函数 * @param [type] $arr [数组] * @return [t ...
- CI笔记6 json 传值
CI3.x 使用json,配合easyui, 其实很简单,走了很多的弯路, 首先在ci的控制器重,建立2个方法,一个用于显示加载view,一个用于echo json,就可以了. 需要注意的是,在ci的 ...
- CI 笔记,使用 json的参考文档(废弃)
Json的处理转换, Json转换步骤, a) 先设置json为空字符串, b) While循环,遍历, While(!!$row = mysql_fetch_arra ...
- 第一天的CI笔记
1 CI不区分大小写2. http://xxx.com/index/[控制器名称]/[控制器里面方法的确名称]/[传入方法的参数 ]/ 3. 控制器及控制器类名称与文件名称一致, 继承 CI_Cont ...
- CI 笔记5 (CI3.0 默认控制器,多目录)
在ci3.x中,不支持多级子目录的默认控制器设置, 解决方法如下: 在index.php中,添加 $routing['directory'] = 'admin';然后在默认的router.php的默 ...
- CI 笔记2,(命令规范等)
调试模式开启,$this->output->enable_profiler(TRUE); 保留字,不能和控制器重名,有3个,CI_Controller ,Default, index.这三 ...
- CI 笔记(1)
1. 下载CI,官方网站,目前3.x版本已经更新,2.2.6版本为2.x版本的最后的一个版本.为了和视频教材一致,使用CI 2.x版本 2. 目录结构,从application里面的,controll ...
- ci 笔记
一.CI的HelloWorld! 注意:CI禁止直接通过文件目录来访问控制器. ./application/controllers/hello.php 1 <?php 2 //放止用户直接通过路 ...
- 常用的CI笔记
1. thinkphp 封装好的$this->success(),就直接实现成功跳转,$this->error(),错误跳转.CI有show_error(),但是却不能直接实现跳转,所以需 ...
随机推荐
- 利用 lucene.net 实现高效率的 WildcardQuery ,记一次类似百度搜索下拉关键字联想功能的实现。
打开百度输入 站内搜索也要实现类似功能.最基础的做法,写个方法查数据库搜索历史综合表keywordSearch(先将被搜索过的关键字记录到一张表,记录好他们被搜索的次数.上次搜索的有多少结果) 大概 ...
- 软件工程(FZU2015)赛季得分榜,第10回合(alpha冲刺)
目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...
- HTML form 表单
1.id.name的关系 通常我们在写HTML代码时,会给控件指定一个id属性,这个属性只供JS和CSS使用,在表单提交时,它不起任何作用; 在HTML代码中我们会指定不同的value为各个不同的控件 ...
- VMware安装Centos7,已将该虚拟机配置为使用64为,却无法执行64位操作
在新建虚拟机之后,相信很多人都遇到了这个问题,这个问题的本质就是电脑是否支持虚拟化,虽然不是很清楚这是什么 解决方案就是,重启电脑(这边的电脑不是虚拟机而是主机),进入BIOS界面(不同电脑进入BIO ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7676 Solved: 3509[Subm ...
- Beta阶段第三次Scrum Meeting
情况简述 Beta阶段第三次Scrum Meeting 敏捷开发起始时间 2016/12/12 22:00 敏捷开发终止时间 2016/12/13 22:00 会议基本内容摘要 讨论决定了APP的名称 ...
- 《Python核心编程》18.多线程编程(三)
18.6使用threading模块 #!/usr/bin/env python # -*- coding:utf-8 -*- """从Thread类中派生出一个子例,创建 ...
- 点评前端开发工具cortex安装使用方法
cortex安装方法: 安装最新版 sudo npm install -g cortex cortex config set registry http://registry.cortexjs.org ...
- 10月24日上午PHP面向对象
面向对象 程序分为两种,一种是面向过程的,另一种是面向对象的.之前的学的都是面向过程的,按部就班的一步一步的按照顺序往下走. 面向对象: 1.什么叫做对象 一切皆为对象(一个对象由一组属性和有权对这些 ...
- 安卓log4k问题解决
1.直接上代码 //log4k问题 public static void log(String tag, String str) { int index = 0; // 当前位置 int max = ...