CodeIgniter

说明

CodeIgniter 是为PHP 开发人员提供的一套Web 应用程序工具包。它的目标是能

够让你比从零开始更加快速的完成项目,它提供了一套丰富的的类库来满足我们日常

的任务需求,并且提供了一个简单的接口和逻辑结构来调用这些库

安装

  1. 解压缩安装包
  2. 将CodeIgniter 文件夹及里面的文件上传到服务器,通常index.php 文件将位于

    网站的根目录;
  3. 使用文本编辑器打开application/config/config.php 文件设置你网站的根URL,

    如果你想使用加密或会话,在这里设置上你的加密密钥;
  4. 如果你打算使用数据库,打开application/config/database.php 文件设置数据库

    参数。
  5. 主目录下index.php的$system_path,$application_folder,$view_folder分别表示系统路径,

    应用路劲及视图路径,默认为system,application及application/views

流程

  1. index.php 文件作为前端控制器,初始化运行CodeIgniter 所需的基本资源;
  2. Router 检查HTTP 请求,以确定如何处理该请求;
  3. 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;
  4. 在加载应用程序控制器之前,对HTTP 请求以及任何用户提交的数据进行安全

    检查;
  5. 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;
  6. 最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用

    于后续的请求。

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 笔记一的更多相关文章

  1. CI 笔记,借鉴的4个辅助自定义函数

    在System的core的common.php中,借鉴的4个自定义函数, 摘自后盾网的CI教程 /** * 格式化打印函数 * @param [type] $arr [数组] * @return [t ...

  2. CI笔记6 json 传值

    CI3.x 使用json,配合easyui, 其实很简单,走了很多的弯路, 首先在ci的控制器重,建立2个方法,一个用于显示加载view,一个用于echo json,就可以了. 需要注意的是,在ci的 ...

  3. CI 笔记,使用 json的参考文档(废弃)

    Json的处理转换, Json转换步骤, a)         先设置json为空字符串, b)         While循环,遍历, While(!!$row = mysql_fetch_arra ...

  4. 第一天的CI笔记

    1 CI不区分大小写2. http://xxx.com/index/[控制器名称]/[控制器里面方法的确名称]/[传入方法的参数 ]/ 3. 控制器及控制器类名称与文件名称一致, 继承 CI_Cont ...

  5. CI 笔记5 (CI3.0 默认控制器,多目录)

    在ci3.x中,不支持多级子目录的默认控制器设置, 解决方法如下: 在index.php中,添加  $routing['directory'] = 'admin';然后在默认的router.php的默 ...

  6. CI 笔记2,(命令规范等)

    调试模式开启,$this->output->enable_profiler(TRUE); 保留字,不能和控制器重名,有3个,CI_Controller ,Default, index.这三 ...

  7. CI 笔记(1)

    1. 下载CI,官方网站,目前3.x版本已经更新,2.2.6版本为2.x版本的最后的一个版本.为了和视频教材一致,使用CI 2.x版本 2. 目录结构,从application里面的,controll ...

  8. ci 笔记

    一.CI的HelloWorld! 注意:CI禁止直接通过文件目录来访问控制器. ./application/controllers/hello.php 1 <?php 2 //放止用户直接通过路 ...

  9. 常用的CI笔记

    1. thinkphp 封装好的$this->success(),就直接实现成功跳转,$this->error(),错误跳转.CI有show_error(),但是却不能直接实现跳转,所以需 ...

随机推荐

  1. Servlet和JSP

    Servlet 一.Servlet 的生命周期. servlet 有良好的生存期的定义,包括加载和实例化.初始化.处理请求以及服务结束.这个生存期由javax.servlet.Servlet 接口 的 ...

  2. Swift学习(一):自定义运算符 operator

    自定义运算符仅能包含这些字符: / = - + * % < >!& | ^.~ 运算符位置: 前置运算符 prefix 中间运算符 infix 后置运算符 postfix 运算符其 ...

  3. sql server 排名函数:DENSE_RANK

    一.需求 之前sql server 的排名函数用得最多的应该是RoW_NUMBER()了,我通常用ROW_NUMBER() + CTE 来实现分页:今天逛园,看到另一个内置排名函数还不错,自己顺便想了 ...

  4. DayPilot 7.8 DLL去DEMO字样下载

    来自 DayPilot 的 7.8.3169.1 版本的DLL,微调去掉了“DEMO”字样,供参考,商用请支持正版! 此处下载: http://files.cnblogs.com/files/pcca ...

  5. Internet网

    Internet网是世界上最大的基于IP的网络.它是世界上所有计算机使用IP相互对话的一个无组织的集合.Internet上每台计算机都至少有一个IP地址来标识该计算机. 节点与主机 连接到Intern ...

  6. 浅谈js命名空间管理

    在C# 和 Java里面我们如果想使用哪一个功能类就要引用相应的命名空间. 如C#里面有个System.Web.UI库,我们就要用using   System.Web.UI;,之后我们就可以用到Scr ...

  7. Linux 下配置php开发环境

    windows下有一键安装的环境很方便,不过现实中常常服务器是linux系统.想要搭建环境怎么搞呢? 边学变发直播博客,不定期更新.

  8. HTML5全局属性和事件详解

    属性: HTML5属性能够赋给标签元素含义和语境,下面的全局属性可用于任何 HTML5 元素. 属性 描述 contenteditable 规定是否允许用户编辑内容. contextmenu 规定元素 ...

  9. 用VS开发PHP扩展

    开发前准备工作: VS(我用的2013) Cygwin(下载地址:http://www.cygwin.com/) 搭载了php运行环境的IIS7.5 (用来测试) php编译后的程序和编译前的源码,我 ...

  10. shell中测试命变量是否已经定义

    (1)sehll实例 # cat subshell #!/bin/bash if (set -u; : $var); then #冒号与$间有空格 echo "Variable is set ...