CI 笔记一

时间:2023-03-08 23:37:54
CI 笔记一

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';