PHP中CODEIGNITER开发框架入门教程(1/4)

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 末页

时间: 2024-08-25 10:51:11

PHP中CODEIGNITER开发框架入门教程(1/4)的相关文章

PHP中使用curl入门教程

  这篇文章主要介绍了PHP中使用curl入门教程,本文讲解了curl概述.安装curl.PHP中使用curl的步骤.一个简单的curl代码实例等内容,需要的朋友可以参考下 概述 在我的上一篇文章"curl和libcurl简介"中简单的给大家介绍了curl相关的知识.这篇文章向大家介绍一下PHP中的curl扩展. 尽管在上一篇文章中,对curl和libcurl做了区分,也解释了某些相关的概念.同时,也知道了PHP中的curl扩展其实是对libcurl的封装.但是,在这篇文章中,为了写起

C# 2.0中泛型编程初级入门教程

在2005年底微软公司正式发布了C# 2.0,与C# 1.x相比,新版本增加了很多 新特性,其中最重要的是对泛型的支持.通过泛型,我们可以定义类型安全的数 据结构,而无需使用实际的数据类型.这能显著提高性能并得到更高质量的代码 .泛型并不是什么新鲜的东西,他在功能上类似于C++的模板,模板多年前就已 存在C++上了,并且在C++上有大量成熟应用. 本文讨论泛型使用的一般 问题,比如为什么要使用泛型.泛型的编写方法.泛型中数据类型的约束.泛型 中静态成员使用要注意的问题.泛型中方法重载的问.泛型方

Python中的Numpy入门教程_python

1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数.如果接触过matlab.scilab,那么numpy很好入手. 在以下的代码示例中,总是先导入了numpy: 复制代码 代码如下: >>> import numpy as np>>> print np.version.version1.6.2

php中数组的入门教程

数字索引数组: 非数字索引数组: 数组操作符: 二维数组和多维数组: 数组排序: 多维数组排序: 对数组进行重排序: 执行其他数组操作: 数字索引数组 如同C#中的数组类似,访问数组中的每一项,可以使用数组的索引值,默认从0开始. 新建数组: 新建一个数组: 1 $phones = array('htc','moto','nokia'); 或: 1 $phones[0] = 'htc';   2 $phones[1] = 'moto';   3 $phones[2] = 'nokia'; 对于第

Android中的AppWidget入门教程_Android

什么是AppWidget?AppWidget就是我们平常在桌面上见到的那种一个个的小窗口,利用这个小窗口可以给用户提供一些方便快捷的操作.本篇打算从以下几个点来介绍AppWidget: 1.如何创建一个简单的AppWidget 2.如何使得AppWidget与客户端程序交互 创建简单的AppWidget 在介绍之前给大家看一下程序运行的最后结果和项目结构图,以便大家有个整体的印象. 运行结果图: 项目结构图: 第一步: 首先在res文件夹下新建一个名字为xml的文件夹,然后在xml目录下创建一个

跨平台移动WEB应用开发框架iMAG入门教程_Android

iMAG是一个非常简洁高效的移动跨平台开发框架,开发一次可以同时兼容Android和iOS平台,有点儿Web开发基础就能很快上手.当前移动端跨平台开发的框架有很多,但用iMAG还有一个好处,就是用iMAG开发出的App是原生的.iMAG采用XML + JavaScript(配置 + 脚本)的开发方式,它的原理是将符合iMAG开发规范的XML文件解释成对应的原生应用代码来执行.原生跨平台开发,iMAG App具有和Native App相同的性能和用户体验,因此相比PhoneGap.JQuery M

如何在Python的Flask框架中使用模版的入门教程

  如何在Python的Flask框架中使用模版的入门教程?          概述 如果你已经阅读过上一个章节,那么你应该已经完成了充分的准备工作并且创建了一个很简单的具有如下文件结构的Web应用: microblog |-flask文件夹 |-<一些虚拟环境的文件> |-app文件夹 | |-static文件夹 | |-templates文件夹 | |-__init__.py文件 | |-views.py文件 |-tmp文件夹 |-run.py文件 以上给你介绍了在Python的Flask

php中的curl使用入门教程和常见用法实例

[目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件上传 七.文件下载 八.http 验证 九.通过代理发送请求 十.发送json数据 十一.cURL批处理(multi cURL) 十二.总结 起先cURL是做为一种命令行工具设计出来的,比较幸运的是,php也支持cURL了.通过cURL这个利器,我们能在php程序中自由地发送 HTTP请求到某个url来获取

XML入门教程:现实生活中的XML

xml|教程|入门教程 一个现实生活中的例子,向您展示XML如何携带数据. 实例: XML 新闻 XMLNews是用于交换新闻和其他信息的规范. 对新闻的供求双方来说,通过使用这种标准,可以使各种类型的新闻信息通过不同软硬件以及编程语言进行的制作.接收和存档更加容易. 一个XMLNews文档实例: <?xml version="1.0" encoding="ISO-8859-1"?><nitf><head><title>