基础概览:
1、CodeIgniter 生成的 URL 非常干净,而且对搜索引擎友好。不同于标准的 “查询字符串” 方法, CodeIgniter 使用了基于段的方法:
example.com/news/article/345
2、CodeIgniter 可扩展(系统可以非常简单的通过你自己的类库和辅助函数来扩展,也可以通过 类扩展或系统钩子来实现)、CodeIgniter 不需要模板引擎(自带简单模板引擎,但并不强制你 使用模板)
3、CodeIgniter URL:
example.com/class/function/ID
类/方法/控制器的参数, ID 或其他任何变量
4、URL:添加 URL 后缀:
在 config/config.php 中的config[‘url_suffix’]参数你可以指定一个后缀,CodeIgniter 生成 URL 时会自动添加上它:
$config[‘url_suffix’] = ‘.net’;
那么:example.com/index.php/products/view/shoes就变成了:example.com/index.php/products/view/shoes.net
5、URL:启用查询字符串:
如:index.php?c=products&m=view&id=345 这样的URL格式
只需在application/config.php 的enable_query_strings 参数设置为TRUE即可以:
index.php?c=controller&m=method 查询的方式来访问;
6、控制器:基本信息
CI的控制器位于:application/controllers,与其他大多数框架一样,控制器雷敏必须大写,必须继承CI_Controller控制器类才能使用相关方法,路由规则为:
example.com/index.php/products/shoes/sandals/123
example.com/index.php/控制器名/方法名/参数1/参数2
7、控制器:默认控制器:
即你可以定义一个默认控制器,在访问你的网站根目录时,会自动转入到你的默认控制器里:
定义方法:在application/config/routes.php
$route[‘default_controller’] = ‘默认控制器名’;
8、控制器:重映射方法:
如果你的控制包含一个 _remap() 方法,那么无论 URI 中包含什么参数时都会调用该方法。 它允许你定义你自己的路由规则,重写默认的使用 URI 中的分段来决定调用哪个方法这种行为。
public function index($request = 'he', $response = 'tang')
{
echo $request.'<br />'.$response;
}
public function _remap($method)
{
if ($method === 'defa')
{
$this->$method();
}
else
{
$this->index();
}
}
public function defa()
{
echo 'default_string';
}
//当调用当前控制器时,无论使用什么控制器,都会自动转入到_remap方法里,如果URL参数为defa,那么执行defa方法,不为defa则执行index方法;
9、控制器:不能被URL访问的控制器类:
(1)private/protected类;(2)、_method()类(即在方法名前加了下划线的类)
10、控制器:将控制器放入子目录:
当你想构建比较大的web应用时,在controllers建立了多个目录来存放不同控制器,那么url访问时应该是:
目录:application/controllers/products/Shoes.php
URL:example.com/index.php/products/shoes/show/123
11、控制器:在CI中使用构造函数:
必须先继承父类:parent::__construct();原因是你的构造函数将会覆盖父类的构造函数,所以我们要手工的调用它。
构造函数没有返回值,但是可以执行一些默认操作。
12、控制器:保留方法名:
简单讲,CI内置了一些方法和类,在开发过程中尽量不要和这些名称一致,否则会覆盖他们。这些名称详见CI官方中文手册:http://codeigniter.org.cn/user_guide/index.html