CodeIgniter框架.ppt_第1页
CodeIgniter框架.ppt_第2页
CodeIgniter框架.ppt_第3页
CodeIgniter框架.ppt_第4页
CodeIgniter框架.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CodeIgniter框架,一、CI简单介绍,如果. 你不喜欢复杂,热爱简单。 你想要一个小巧的框架。 你需要广泛兼容标准主机上的各种 PHP 版本和配置。 你想要一个几乎只需 0 配置的框架。 你不希望被迫学习一门模板语言(虽然可以选择你喜欢的模板解析器)。 那么 CodeIgniter 就是你所需要的 CodeIgniter 是一个小巧但功能强大的 PHP 框架 CI的特点: 简单 免费 MVC(关键),一、CI简单介绍,2013年最棒的4个PHP框架,二、下载并安装CI,下载地址: 最新版本是2.1.4 安装步骤: 解压缩安装包。 把 CodeIgniter 文件夹和里面的文件上传到你的

2、服务器。 用任何文本编辑器打开 application/config/config.php 去设置你的网站根 URL。 如果你打算使用数据库,打开 application/config/database.php 文件,设置你的数据库参数。,三、网站结构及业务流程,安装 CI 文件后,我们来看一下目录结构 分析各文件的功能,三、网站结构及业务流程,应用程序流程图 Question:默认首页是如何显示出来的?,四、控制器,控制器是应用程序的心脏,因为它们决定如何处理 HTTP 请求。 简而言之,一个控制器就是一个类文件,是以一种能够和 URI 关联在一起的方式来命名的。 假设这个 URI: Cod

3、eIgniter 将尝试寻找并装载一个名为 blog.php 的控制器。 编写自己的控制器 命名规范 确保你的控制器扩展(继承)自父控制器类,以便它能够继承其所有的方法 URI 的第二部分是用来决定调用控制器中哪个方法的,如果为空,则默认载入 “index” 方法。,五、URL模式,默认情况下,CodeIgniter 中的 URL 使用基于段的方法: 第一段表示调用控制器类。 第二段表示调用类中的函数或方法。 第三及更多的段表示的是传递给控制器的参数,如 ID 或其它各种变量。 启用查询字符串 在一些情况下你需要在 URL 中使用查询字符串: index.php?c=products 其中$d

4、ata是要传入视图的动态数据。 模板语法,CI采用原生的模板语法,也就是直接在页面中使用php标签处理动态数据。 载入多个视图,在控制器中使用多个load-view 即可,如果每个视图都传递动态数据,只需在第一个视图传入数据。,七、模型,模型是专门用来和数据库打交道的PHP类。 模型类文件存放在 application/models/ 文件夹。 定义模型 继承基本模型类CI_Model 定义相应的方法 载入模型 手动载入,在控制器中载入模型,$this-load-model(模型名) 自动载入,在config/autoload.php中配置,八、数据库操作,1. 数据库配置 applicati

5、on/config/database.php 2. 连接数据库 手动连接:$this-load-database() 自动连接:在autoload.php中设定两种 3. 数据库操作 数据库连接之后,使用$this-db-query(sql语句)来执行查询 $query = $this-db-query(sql语句),八、数据库操作,返回结果集 result() result_array() row() row_array(),成功返回true 失败返回false,读操作辅助函数:$query-num_rows(),$query-num_fields(), $query-free_result

6、() 写操作辅助函数:$this-db-insert_id(),$this-db-affected_rows() 其它辅助函数:$this-db-count_all(表名), $this-db-last_query(),$this-db-insert_string(), $this-db-update_string(),八、数据库操作-Active Record类,AR数据库模式以较少的程序代码来实现信息在数据库中的获取,插入,更改。 AR允许你创建独立的数据库应用程序,因为查询语法是由数据库适配器来产生的。 AR可以进行更安全的查询,因为系统会自动的对所有的输入值进行转义。,$this-db

7、-get(); $this-db-select(); $this-db-from(); $this-db-where(); $this-db-group_by(); $this-db-having(); $this-db-order_by(); $this-db-limit(); 支持链式语法,$this-db-insert(); $this-db-update(); $this-db-delete();,九、部署应用程序,思考:如何在一个 CodeIgniter 下运行多个应用程序? 方案1,共享同一个 CodeIgniter,创建多个应用 方案2,使用分组功能,将控制器和视图分开 方案3,

8、扩展核心类 扩展核心类 扩展的类必须申明由母类扩展而来。 新扩展的类所在的文件必须以 MY_ 为前缀。 所有原始CodeIgniter类库以 CI_ 作为前缀,所以请勿以CI_作为你自己的前缀.所有的扩展核心类必须放到core目录中! 扩展loader类和controller,十、CI辅助函数,辅助函数是帮助我们完成特定任务的函数。 每个辅助函数文件仅仅是一些函数的集合(注意不是用类的方式来实现的)。 每个辅助函数处理一个特定的任务,并且不必依靠其他函数。 载入辅助函数 手动载入:$this-load-helper(url) 或 $this-load-helper( array(helper1

9、, helper2, helper3) ); 自动载入:application/config/autoload.php中配置 使用辅助函数 直接使用即可,如URL辅助函数、CAPTCHA辅助函数 扩展helpers,十、CI辅助函数之URL函数,URL 辅助函数文件包含一些在处理 URL 中很有用的函数 base_url() :返回在 config.php 中设定的 base_url site_url() :根 URL 指 config.php 中指定的 base_url 和 index_page anchor() :创建基于你的本地站点URL的标准锚链接 redirect(): 跳转函数,十

10、、CI辅助函数之CAPTCHA函数,验证码辅助函数用来生成图片验证码 create_captcha($data) 根据你指定的一系列参数创建验证码图像, 返回值是一个包含此图像数据的数组。 验证码辅助函数必须需要GD库. 只有 img_path 和 img_url 参数是必须的. captcha 目录必须可写(666, or 777) 扩展CAPTCHA函数,注意: 要手动创建data/captcha目录, 基于项目根目录,十一、CI类库,所有的类库文件存放在system/libraries 文件夹 载入类库 $this-load-library(classname); $this-load-

11、library(array(email, table); 或者在autoload.php中配置以自动载入 使用类库 $this-classname-方法() 创建自己的类库 可以创建全新的类库 可以扩展原始类库 可以替换原始类库,注意两点: 初始化CodeIgniter资源 在初始化自定义类时传递参数,十一、CI类库之装载类,装载,顾名思义,是用来装载元素。这些元素可以是库 (类) 视图文件, 辅助函数, 模型, 或者是你自己的文件。 提示: 这个类是由系统初始化的,所以,没有必要自己手动初始化。 有了这个类之后,我们就可以装载各种文件了 $this-load-library(); $this

12、-load-view(); $this-load-model(); $this-load-database(); $this-load-helper(); $this-load-config();,十一、CI类库之表单验证类,CodeIgniter 提供了一个全面的表单验证和数据预处理类以帮助缩减你所写的代码。,十一、CI类库之输入类,输入类有两个目的: 为了安全,预处理输入数据。 提供helper的一些方法,取得输入数据,并预处理输入数据。 说明: 系统自动加载此类,不用手动加载。,十一、CI类库之文件上传类,CodeIgniter 的文件上传类允许文件被上传。您可以设置指定上传某类型的文件

13、及指定大小的文件。,十一、CI类库之图像处理类,CodeIgniter 的图像处理类可以使你完成以下的操作: 调整图像大小 创建缩略图 图像裁剪 图像旋转 添加图像水印,十一、CI类库之分页类,CodeIgniter 的分页类是一个非常简单,并且 100% 用户自定义的类。,十二、CI超级对象,CI构建一个“超级对象”:它把你的整个程序当作一个大的对象。 在config.php中开启日志以查看 分析源码,探究超级对象形成过程,Controller.php,CodeIgniter.php,十三、缓存之页面缓存,页面缓存 CI支持每个页面单独缓存,而且可以设置缓存更新时间。当一个网页第一次被加载的

14、时候,缓存文件将被保存到application/cache文件夹。下次访问的时候,系统就会直接读取缓存文件,然后返回给用户的浏览器。如果缓存文件过期,它将被删除并重新生成。 启动缓存 在控制器(controller)的方法(function)内添加如下代码:$this-output-cache(n); 其中 n 是你希望缓存更新的 分钟 数。可以使用 m/60 来精确到秒,例如 1/60 ,则是精确到 1秒 删除缓存 如果你不再想使用缓存,仅需将上面的代码从你的controller里面删除即可。,此处使用了输出类output,十三、缓存之数据库缓存,数据缓存 数据库查询结果保存在文本文件中以减

15、少数据库访问。 首次被加载时,数据库查询的结果对象将会被序列化并保存在你服务器的文本文件中。而页面再次被加载时缓存文件将会替代数据库查询。如此,在被缓存的页面中,你的数据库使用率会降至0。 只有读类型(SELECT) 查询会被缓存,因为只有这种查询会产生结果集。 激活缓存 在服务器上创建一个可写的目录以便保存缓存文件。 在文件application/config/database.php中$dbxxxxcachedir 设置其目录。 激活缓存特性,可以在文件 application/config/database.php 中设置全局选项$dbxxxxcache_on=TRUE,或使用$this

16、-db-cache_on() / $this-db-cache_off()手动设置 删除缓存 $this-db-cache_delete() 和 $this-db-cache_delete_all(),十四、安全,不安全因素: 通过url恶意访问 sql注入 xss攻击 CodeIgniter 严格限制 URI 中所能包含的字符,以此帮助你设计的程序减少被恶意数据入侵的可能。 在接收任何数据到你的程序之前,不管是表单提交的 POST 数据、COOKIE 数据、GET数据,都推荐你实践下面的三个步骤: 过滤不良数据 (XSS 过滤) 验证数据以确保符合正确的类型、长度、大小等(表单验证) 在提交

17、数据到你的数据库之前将其转换 (插入数据库之前转义所有数据),十五、错误及调试,CodeIgniter将允许你建立自己的错误报告 show_error() show_404() CodeIgniter会在找不到目标控制器情况下,自动显示404消息。 log_message() 使用分析器将在页面下方显示基准测试结果,运行过的 SQL 语句,以及 $_POST 数据。这些信息有助于开发过程中的调试和优化。 该分析器无须手动初始化,只需按照下面的方式激活,他将被输出类自动装载。 在控制器中设置以下方法以激活该分析器 $this-output-enable_profiler(TRUE);激活后将产生一个报告并插入您的页面底部,十六、钩子,CodeIgniter 的钩子功能使得您可以在不修改系统核心文件的基础上来改变或增加系统的核心运行功能。 启用钩子 在 application/config/config.php 文件中设定: $configenable_hooks = TRUE; 定义钩子 钩子是在 application/config/hooks.php 文件中定义的 挂钩点 pre_system pre_controller post_controller_con

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论