CodeIgniter URL:
www.111cn.net /class/function/ID
1、第一段表示调用控制器类。
2、第二段表示调用类中的函数或方法。 (如果你的类文件保存在子目录中,那么第二段包含了两个小段:子目录/类函数)
3、第三及更多的段表示的是传递给控制器的参数,如 ID 或其他各种变量。
(这里的第一、第二、第三段指的是网址中除域名和index.php之外由斜杠“/”分隔的段)
通过设置 application/config/config.php 文件$config['url_suffix']这个参数,你可以为 CodeIgniter 生成的 URL 添加一个指定的文件后缀。
比如:www.111cn.net /index.php/products/view/shoes
你可以随意添加一个后缀,例如 .html,使其显示为:
www.111cn.net /index.php/products/view/shoes.html
可以通过设置 application/config/config.php 文件$config['enable_query_strings']参数值为“true”来启用URL中的查询字符串(形 如:index.php?c=products&m=view&id=345),请注意:如果你使用查询字符串,那么就必须使用自己建立 的 URL ,而且不能使用URL 辅助函数(或是其他生成 URL 的辅助函数,例如表单辅助函数),因为这些都是根据分段 URL 设计的。
URL route路由规则自定义:
1、路由规则文件位置:application/config/routes.php =》$route数组
2、路由规则(通配符规则和正则表达式规则):
一个典型的通配符路由看起来是这样的:
$route['product/:num'] = “catalog/product_lookup”;//数组的键包含着被匹配的URI,而数组的值包含着路由将被重定向的目的地.
路由数组的键可以匹配文字的值或者使用以下两种通配符类型:
:num 将匹配一个只包含有数字的段.
:any 将匹配一个包含任何字符的段.
也可以使用正则表达式:例如:$route[‘products/([a-z]+)/(\d+)’] = “$1/id_$2″;
可以混合使用通配符与正则表达式.
3、需要被保留的路由:$route['default_controller'] 和 $route['scaffolding_trigger']
控制器类(Controller)
新建控制器:
1、控制器类文件保存位置:application/controllers/
2、控制器类文件的文件名:用控制器类名的全小写格式作文件名,以.php作扩展名
3、控制器类声明格式:㈠必须是Controller类的子类;㈡类名的首字母必须大写。
比如声明blog控制器类,其声明格式形如:
class Blog extends Controller {
function __construct(){
parent::Controller();
}
}
4、控制类中方法的声明:函数名如果以下划线“_”开头,则此函数为私有方法(私有方法不能通过网址访问)。
将私有方法名设为_remap:
该方法会废除掉由 URI 片段来决定哪个方法被调用的规则,允许你重新定义调用方法的规则(方法的路由规则)。
将私有方法名设为_output:
该方法会接收其控制器类的所有输出数据(显示数据),以便由你控制处理和输出。这个方法类似于OO里的析构函数,不管你调用任何方法这个方法总是会被执行。
5、系统的保留类名:Controller CI_Base CI_Loader
6、系统的保留方法名:
_ci_initialize
_ci_scaffolding
index
config
database
dbutil
dbforge
file
helper
helpers
language
library
model
plugin
plugins
scaffolding
script
view
vars
_ci_assign_to_models
_ci_autoloader
_ci_init_class
_ci_init_scaffolding
_ci_is_instance
_ci_load
_ci_load_class
_ci_object_to_array
is_really_writable()
load_class()
get_config()
config_item()
show_error()
show_404()
log_message()
_exception_handler()
get_instance()
7、系统的保留变量:$config $mimes $lang
8、系统的保留常量:
EXT
FCPATH
SELF
BASEPATH
APPPATH
CI_VERSION
FILE_READ_MODE
FILE_WRITE_MODE
DIR_READ_MODE
DIR_WRITE_MODE
FOPEN_READ
FOPEN_READ_WRITE
FOPEN_WRITE_CREATE_DESTRUCTIVE
FOPEN_READ_WRITE_CREATE_DESTRUCTIVE
FOPEN_WRITE_CREATE
FOPEN_READ_WRITE_CREATE
FOPEN_WRITE_CREATE_STRICT
FOPEN_READ_WRITE_CREATE_STRICT
视图(view)
一个视图就是一个网页,或是网页的部分,如头部,底部,侧边栏等等。
视图从不直接调用,必须被一个控制器来调用。
1、视图文件保存位置:application/views/
2、视图文件的文件名:以.php作扩展名
3、在控制器类中载入视图:$this->load->view(‘name’); //其中的 name 便是你的视图文件的名字(如果视图文件存于子目录中,则还应包含子目录名,如:子目录1/试图文件名)。注意:.php 文件的扩展名(后缀名)没有必要专门写出,除非你使用了其他的扩展名。
4、向视图文件中传递数据:数据通过控制器以一个数组或是对象的形式传入视图 , 这个数组或对象作为视图载入函数的第二个参数(例如:$this->load->view(‘name’,array(‘title’=& amp; gt;’标题’,’content’=>’内容’)); )。当我们一次性载入多个视图的时候,只需在第一个视图传入数据就可以了。
5、获取视图的内容:将$this->load->view()函数的第三个参数设为“true”,比如:
$string = $this->load->view(‘myfile’, ”, true);
view方法中的第三个参数表示不输出视图,而只是将结果返回给一个变量。
模型(Model)
模型类的声明方式同控制器类。不同的只是
1、模型类文件保存位置:application/models/
2、模型类的父类名为:Model
3、调用方式不同:㈠控制器类是通过URL调用;㈡模型类是通过在控制器类中使用:
$this->load->model(‘Model_name’);
引用,引用的时候,第一个参数为模型类名(可能还含有子目录名);第二个参数为引用后赋予的新对象名;可以将第三个参数设置为TRUE(或包含数据库连接配置的数组)来使模型装载函数自动连接数据库。
辅助函数(helpers)
1、辅助函数文件保存位置:system/helpers 或 system/application/helpers
2、辅助函数文件名:yourname_helper.php(如果是你扩展的,就要加前缀“MY_”,或你自定义的前缀(application/config/config.php :$config['subclass_prefix'] = ‘MY_';))
3、载入单个辅助函数文件:$this->load->helper(‘辅助函数文件名’);//辅助函数文件名不包括“_helper.php”部分
4、载入多个辅助函数文件:$this->load->helper( array(‘辅助函数文件名1′, ‘辅助函数文件名2′, ‘辅助函数文件名3′) );
5、自动载入辅助函数文件:可以通过打开 application/config/autoload.php ,并往自动载入数组(autoload array)中增加辅助函数文件名来实现。
插件(plugins)
插件的工作方式几乎和辅助函数一模一样。它们最主要的区别在于插件文件一般只有一个函数,而辅助函数文件里面通常是一系列函数。辅助函数被看作系统核心的一部分,而插件通常是网友制作和分享的。
1、插件文件保存位置:system/plugins 或 system/application/plugins
2、插件文件的文件名:yourname_pi.php
3、载入单个插件:$this->load->plugin(‘插件名’);//插件名不包括“_pi.php”部分
4、载入多个插件:$this->load->plugin( array(‘插件名1′, ‘插件名2′, ‘插件名3′) );
5、自动载入插件:可以通过打开 application/config/autoload.php ,并往自动载入数组(autoload array)中增加插件来实现
类库(libraries)
1、类库文件保存位置:system/libraries(系统类库) 或 system/application/libraries(自定义类库)
2、自定义类库命名约定:类名和类文件名应保持一致,它们的首字母必须大写(如是扩展系统类库的类,要加前缀“MY_”,前缀可设置 application/config/config.php:$config['subclass_prefix'],注意:所有原始 CodeIgniter类库以 CI_ 作为前缀,所以请勿以CI_作为你自己的前缀.)
3、类文件的格式
㈠完全自定义的类:
㈡扩展系统类库的类:
class MY_Email extends CI_Email {
function My_Email()
{//如果你需要在类中使用构造函数,你必须在构造函数中显式继承母类构造函数:
parent::CI_Email();
}
}
当你在自定义类中想使用CodeIgniter原始类时,你可以这样做:
首先,定义CodeIgniter对象赋给一个变量:
$CI =& get_instance();//必须以引用的方式
一旦定义某个对象为一个变量,你就可以使用那个变量名取代$this:
$CI =& get_instance();
$CI->load->helper(‘url’);
$CI->load->library(‘session’);
$CI->config->item(‘base_url’);
etc.
首页 1 2 3 4 末页