PHP CI 框架教程 (1) -- 安装和简介
2016-06-17 13:26
633 查看
CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为开发者们建立功能完善的 Web 应用程序。是比较主流的一个PHP框架。
http://www.tutorialspoint.com/codeigniter/codeigniter_basic_concepts.htm
下载后解压缩,然后放到你应用服务器对应的程序目录中即可,如MAC (/Library/WebServer/Documents)
启动应用服务器,如apache httpd 或 nginx ,然后就可以在浏览器中访问到
1)首先,不管什么请求,都先送到 index.php
2)第二步,Routing会决定将请求发送到 step-3 做缓存检查处理,还是发送到 setp-4 做安全检查
3)如果这个请求在缓存中不存在,那么Routing会将请求送到STEP-4做安全检查。
4)在发送给应用程序控制器之前,提交数据的安全性已经接受了检查。此后,控制器加载必要的模型、库、帮助器、插件和脚本,然后传递给视图View。
5)视图用数据来渲染页面,然后传送给缓存。如果请求数据没有被缓存保存,这时就会保存,以便将来再次请求时候能快速处理。
CI目录结构分成三部分:
. Application
. System
. User_guide
Application
这里包含所有用来构建你的应用所需要的代码。主要包含:
Cache
Config -- 程序的配置信息,如数据库配置信息
Controllers
Core -- 你的应用的基础类
Helpers
Hooks -- 提供一些修改Core的入口
Language -- 语言设置相关内容
Libraries --
Logs --
Models --
Third_party --
Views --
System
CI框架的一些核心代码
Core -- CI的基础核心。不要做任何修改!!要扩展功能请通过Application\Hooks
Database --
Fonts --
Helpers --
Language --
Libraries --
User_guide
CI的离线版应用指南。建议浏览一下
此外,这些文件夹之外还有一个很重要的文件,叫 index.php 。我们可以在这文件中设置应用环境和错误处理,也可以定义系统和应用文件夹名。在你还不确定要做什么之前,建议你不要去修改这些东西。
M: Model 代表你的数据结构。典型得,model类包含你从数据库里检索、插入和更新信息的功能。
V: VIEW 视图是展现给用户的信息。通常是一个Web页面,但是在CI里,也可以是页头或者页尾。也可以是一个RSS页或者其他任何类型的“页面”。
C: Controller 控制器为视图和数据提供服务,以及其他任何需要处理HTTP请求并产生页面的资源。
在该目录下新建一个文件 “Test.php” , 写入如下代码
创建控制器
Test类扩展了 CI_Controller 类。当你想创建自己的控制器时,就扩展它。
调用控制器
通过下面的路径来调用刚才创建的控制器
请注意,类名 Test 用大写开头,但在URI里,用小写 test. 基本调用方法:
创建和调用构造方法
修改上面的类,增加一个方法 hello
可以通过以下三种方式来调用和执行控制器:
http://www.your-domain.com/index.php/test http://www.your-domain.com/index.php/test/index http://www.your-domain.com/index.php/test/hello
当我们在浏览器中执行时候,会发现 第一种和第二种调用得到了相同的结果。因为index是控制器默认的被调用方法
访问第三个URL,得到 this is hello function
小结:
1)Controller的名字必须以大写开头
2)调用controller必须用小写开头
3)不要使用和父类相同的方法名,否则会覆写掉父类方法
修改此前的 test.php (application/controllers/test.php)如下
视图可以通过如下的方式加载
不需要写上.php的后缀,除非你要加载其他类型的视图。
index()方法会调用view方法,然后传入 test 作为参数给 view() 因为我们在application/views/ 下创建了 test.php
从下面这张图中可以清晰的看到,这些过程是如何起作用的
xxxcom/clas/method/id/
控制器类名/方法名/参数
某些情况下,你可能需要修改路由规则,那么可以在 application/config/routes.php中修改
http://www.tutorialspoint.com/codeigniter/codeigniter_basic_concepts.htm
1. 安装
从 http://www.codeigniter.com/download 下载,有2个可选版本,可根据需要选择。下载后解压缩,然后放到你应用服务器对应的程序目录中即可,如MAC (/Library/WebServer/Documents)
启动应用服务器,如apache httpd 或 nginx ,然后就可以在浏览器中访问到
2. CI框架结构
1)首先,不管什么请求,都先送到 index.php
2)第二步,Routing会决定将请求发送到 step-3 做缓存检查处理,还是发送到 setp-4 做安全检查
3)如果这个请求在缓存中不存在,那么Routing会将请求送到STEP-4做安全检查。
4)在发送给应用程序控制器之前,提交数据的安全性已经接受了检查。此后,控制器加载必要的模型、库、帮助器、插件和脚本,然后传递给视图View。
5)视图用数据来渲染页面,然后传送给缓存。如果请求数据没有被缓存保存,这时就会保存,以便将来再次请求时候能快速处理。
2.1 目录结构
CI目录结构分成三部分:
. Application
. System
. User_guide
Application
这里包含所有用来构建你的应用所需要的代码。主要包含:
Cache
Config -- 程序的配置信息,如数据库配置信息
Controllers
Core -- 你的应用的基础类
Helpers
Hooks -- 提供一些修改Core的入口
Language -- 语言设置相关内容
Libraries --
Logs --
Models --
Third_party --
Views --
System
CI框架的一些核心代码
Core -- CI的基础核心。不要做任何修改!!要扩展功能请通过Application\Hooks
Database --
Fonts --
Helpers --
Language --
Libraries --
User_guide
CI的离线版应用指南。建议浏览一下
此外,这些文件夹之外还有一个很重要的文件,叫 index.php 。我们可以在这文件中设置应用环境和错误处理,也可以定义系统和应用文件夹名。在你还不确定要做什么之前,建议你不要去修改这些东西。
3. MVC框架
CI基于 MVC 设计模式。MVC是一种将应用逻辑和表现分库的软件设计机制。在实践中,它仅允许你在Web页面中包含最小的脚步,因为表现层从PHP脚本中分离了。M: Model 代表你的数据结构。典型得,model类包含你从数据库里检索、插入和更新信息的功能。
V: VIEW 视图是展现给用户的信息。通常是一个Web页面,但是在CI里,也可以是页头或者页尾。也可以是一个RSS页或者其他任何类型的“页面”。
C: Controller 控制器为视图和数据提供服务,以及其他任何需要处理HTTP请求并产生页面的资源。
4. 基本概念
4.1 控制器
转到 application/controllers 目录,你会看到2个文件 index.html Welcome.php,这是CI自带的。在该目录下新建一个文件 “Test.php” , 写入如下代码
创建控制器
<?php class Test extends CI_Controller { public function index() { echo "Hello World!"; } } ?>
Test类扩展了 CI_Controller 类。当你想创建自己的控制器时,就扩展它。
调用控制器
通过下面的路径来调用刚才创建的控制器
http://www.your-domain.com/index.php/test
请注意,类名 Test 用大写开头,但在URI里,用小写 test. 基本调用方法:
http://www.your-domain.com/index.php/controller/method-name
创建和调用构造方法
修改上面的类,增加一个方法 hello
<?php class Test extends CI_Controller { public function index() { echo "This is default function."; } public function hello() { echo "This is hello function."; } } ?>
可以通过以下三种方式来调用和执行控制器:
http://www.your-domain.com/index.php/test http://www.your-domain.com/index.php/test/index http://www.your-domain.com/index.php/test/hello
当我们在浏览器中执行时候,会发现 第一种和第二种调用得到了相同的结果。因为index是控制器默认的被调用方法
访问第三个URL,得到 this is hello function
小结:
1)Controller的名字必须以大写开头
2)调用controller必须用小写开头
3)不要使用和父类相同的方法名,否则会覆写掉父类方法
4.2 视图
视图可以简单或复杂,可以包含页头页脚或者边条。在 application/views 下创建一个名为 test.php 的文件,然后写入:<!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>CodeIgniter View Example</title> </head> <body> CodeIgniter View Example </body> </html>
修改此前的 test.php (application/controllers/test.php)如下
<?php class Test extends CI_Controller { public function index() { $this->load->view('test'); } } ?>
视图可以通过如下的方式加载
$this->load->view('name'); 或 $this->load->view('directory-name/name');
不需要写上.php的后缀,除非你要加载其他类型的视图。
index()方法会调用view方法,然后传入 test 作为参数给 view() 因为我们在application/views/ 下创建了 test.php
从下面这张图中可以清晰的看到,这些过程是如何起作用的
4.3 模型
定义<?php Class Model_name extends CI_Model { Public function __construct() { parent::__construct(); } } ?>调用
$this->load->model('model_name'); $this->model_name->method();
4.5 路由 Routing
一个典型的路由模式xxxcom/clas/method/id/
控制器类名/方法名/参数
某些情况下,你可能需要修改路由规则,那么可以在 application/config/routes.php中修改
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- php7 读取php.ini[4]
- CISCO交换机概览
- 攻击CISCO路由器
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得