




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平CodeIgniter框架框架高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平一、一、CI简单介绍简单介绍v如果. 你不喜欢复杂,热爱简单。 你想要一个小巧的框架。 你需要广泛兼容标准主机上的各种 PHP 版本和配置。 你想要一个几乎只需 0 配置的框架。 你不希望被迫学习一门模板语言(虽然可以选择你喜欢的模板解析器)。v那么 CodeIgniter 就是你所需要的vCodeIgniter 是一个小巧但功能强大的 PHP 框架CI的特点: 简单 免费 MVC(关键)(关键
2、)高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平一、一、CI简单介绍简单介绍v2013年最棒的年最棒的4个个PHP框架框架高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平二、下载并安装二、下载并安装CIv下载地址: http:/ 最新版本是2.1.4安装步骤: 解压缩安装包。 把 CodeIgniter 文件夹和里面的文件上传到你的服务器。 用任何文本编辑器打开 application/config/config.php 去设置你的网站根 URL。 如果你打算使用数据库,打开 application/config/d
3、atabase.php 文件,设置你的数据库参数。 高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平三、网站结构及业务流程三、网站结构及业务流程v安装 CI 文件后,我们来看一下目录结构分析各文件的功能高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平三、网站结构及业务流程三、网站结构及业务流程应用程序流程图应用程序流程图Question:默认首页是如何显示出来的?高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平四、控制器四、控制器v控制器是应用程序的心脏,因为它们决定如何处理 HT
4、TP 请求。v简而言之,一个控制器就是一个类文件,是以一种能够和 URI 关联在一起的方式来命名的。v假设这个 URI: 将尝试寻找并装载一个名为 blog.php 的控制器。编写自己的控制器编写自己的控制器 命名规范 确保你的控制器扩展(继承)自父控制器类,以便它能够继承其所有的方法 URI 的第二部分是用来决定调用控制器中哪个方法的,如果为空,则默认载入 “index” 方法。高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平五、五、URL模式模式v默认情况下,CodeIgniter 中的 URL 使用基于段的方法: 第一段表示调用控制器类。 第二段表示
5、调用类中的函数或方法。 第三及更多的段表示的是传递给控制器的参数,如 ID 或其它各种变量。 v启用查询字符串启用查询字符串v在一些情况下你需要在 URL 中使用查询字符串:vindex.php?c=products&m=view&id=345vCodeIgniter 支持这个功能是可选的,可以在 application/config/config.php 文件中进行设置,只需将将 enable_query_strings 更改为 TRUE 即可。高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平六、视图六、视图v视图就是一个网页,或是网页的
6、一部分,如头部,底部,侧栏等。视图既可以是php文件,也可以是html文件,有时候也叫模板页面。v在控制器中载入视图 $this-load-view(视图文件, $data ); 其中$data是要传入视图的动态数据。v模板语法,CI采用原生的模板语法,也就是直接在页面中使用php标签处理动态数据。v载入多个视图,在控制器中使用多个load-view 即可,如果每个视图都传递动态数据,只需在第一个视图传入数据。高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平七、模型七、模型v模型模型是专门用来和数据库打交道的PHP类。v模型类文件存放在 applicati
7、on/models/ 文件夹。v定义模型定义模型 继承基本模型类CI_Model 定义相应的方法v载入模型载入模型 手动载入,在控制器中载入模型,$this-load-model(模型名) 自动载入,在config/autoload.php中配置高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平八、数据库操作八、数据库操作v1. 数据库配置配置 vapplication/config/database.phpv2. 连接连接数据库 手动连接:$this-load-database() 自动连接:在autoload.php中设定两种v3. 数据库操作操作v数据
8、库连接之后,使用$this-db-query(sql语句语句)来执行查询 v$query = $this-db-query(sql语句语句) 高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平八、数据库操作八、数据库操作 select$this-db-query() insert update delete 返回结果集result()result_array()row()row_array()成功返回true失败返回false读操作辅助函数:$query-num_rows(),$query-num_fields(), $query-free_result()
9、写操作辅助函数:$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允许你创建独立的数据库应用程序,因为查询语法是由数据库适配器来产
10、生的。 AR可以进行更安全的查询,因为系统会自动的对所有的输入值进行转义。$this-db-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();高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平九、部署应用程序九、部署应用程序v思考
11、:如何在一个 CodeIgniter 下运行多个应用程序? 方案1,共享同一个 CodeIgniter,创建多个应用 方案2,使用分组功能,将控制器和视图分开 方案3,扩展核心类扩展核心类扩展核心类 扩展的类必须申明由母类扩展而来。 新扩展的类所在的文件必须以 MY_ 为前缀。 所有原始CodeIgniter类库以 CI_ 作为前缀,所以请勿以CI_作为你自己的前缀.所有的扩展核心类必须放到core目录中!扩展扩展loader类和类和controller高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十、十、CI辅助函数辅助函数 辅助函数是帮助我们完成特定
12、任务的函数。 每个辅助函数文件仅仅是一些函数的集合(注意不是用类的方式来实现的)。 每个辅助函数处理一个特定的任务,并且不必依靠其他函数。载入辅助函数载入辅助函数 手动载入:$this-load-helper(url) 或 $this-load-helper( array(helper1, helper2, helper3) ); 自动载入:application/config/autoload.php中配置使用辅助函数使用辅助函数直接使用即可,如URL辅助函数、CAPTCHA辅助函数扩展扩展helpers高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十
13、、十、CI辅助函数之辅助函数之URL函函数数URL 辅助函数文件包含一些在处理 URL 中很有用的函数 base_url() :返回在 config.php 中设定的 base_url site_url() :根 URL 指 config.php 中指定的 base_url 和 index_page anchor() :创建基于你的本地站点URL的标准锚链接 redirect(): 跳转函数高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十、十、CI辅助函数之辅助函数之CAPTCHA函函数数验证码辅助函数用来生成图片验证码create_captcha($d
14、ata)根据你指定的一系列参数创建验证码图像, 返回值是一个包含此图像数据的数组。 验证码辅助函数必须需要GD库. 只有 img_path 和 img_url 参数是必须的. captcha 目录必须可写(666, or 777) 扩展扩展CAPTCHA函数函数注意:要手动创建data/captcha目录,基于项目根目录高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十一、十一、CI类库类库v所有的类库文件存放在system/libraries 文件夹v载入类库载入类库v$this-load-library(classname); $this-load-l
15、ibrary(array(email, table);v或者在autoload.php中配置以自动载入v使用类库使用类库v$this-classname-方法()v创建自己的类库创建自己的类库 可以创建全新的类库 可以扩展原始类库 可以替换原始类库注意两点:初始化CodeIgniter资源1.在初始化自定义类时传递参数高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十一、十一、CI类库之装载类类库之装载类v装载,顾名思义,是用来装载元素。这些元素可以是库 (类) 视图文件, 辅助函数, 模型, 或者是你自己的文件。v提示: 这个类是由系统初始化的,所以,没
16、有必要自己手动初始化。v有了这个类之后,我们就可以装载各种文件了v$this-load-library();v$this-load-view();v$this-load-model();v$this-load-database();v$this-load-helper();v$this-load-config();高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十一、十一、CI类库之表单验证类类库之表单验证类vCodeIgniter 提供了一个全面的表单验证和数据预处理类以帮助缩减你所写的代码。v 高级高级软件软件人才实作培训专家人才实作培训专家! !北京
17、传智播客教育 主讲: 王超平十一、十一、CI类库之输入类类库之输入类v输入类有两个目的: 为了安全,预处理输入数据。 提供helper的一些方法,取得输入数据,并预处理输入数据。 说明: 系统自动加载此类,不用手动加载。 高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十一、十一、CI类库之文件上传类类库之文件上传类vCodeIgniter 的文件上传类允许文件被上传。您可以设置指定上传某类型的文件及指定大小的文件。高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十一、十一、CI类库之图像处理类类库之图像处理类vCod
18、eIgniter 的图像处理类可以使你完成以下的操作: 调整图像大小 创建缩略图 图像裁剪 图像旋转 添加图像水印 高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十一、十一、CI类库之分页类类库之分页类vCodeIgniter 的分页类是一个非常简单,并且 100% 用户自定义的类。高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十二、十二、CI超级对象超级对象vCI构建一个“超级对象”:它把你的整个程序当作一个大的对象。v在config.php中开启日志以查看 v分析源码,探究超级对象形成过程Controller.
19、phpCodeIgniter.php高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十三、缓存之页面缓存十三、缓存之页面缓存v页面缓存页面缓存vCI支持每个页面单独缓存,而且可以设置缓存更新时间。当一个网页第一次被加载的时候,缓存文件将被保存到application/cache文件夹。下次访问的时候,系统就会直接读取缓存文件,然后返回给用户的浏览器。如果缓存文件过期,它将被删除并重新生成。v启动缓存启动缓存v在控制器(controller)的方法(function)内添加如下代码:$this-output-cache(n);v其中 n 是你希望缓存更新的
20、分钟 数。可以使用 m/60 来精确到秒,例如 1/60 ,则是精确到 1秒v删除缓存删除缓存v如果你不再想使用缓存,仅需将上面的代码从你的controller里面删除即可。此处使用了输出类此处使用了输出类output高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十三、缓存之数据库缓存十三、缓存之数据库缓存v数据缓存数据缓存 数据库查询结果保存在文本文件中以减少数据库访问。 首次被加载时,数据库查询的结果对象将会被序列化并保存在你服务器的文本文件中。而页面再次被加载时缓存文件将会替代数据库查询。如此,在被缓存的页面中,你的数据库使用率会降至0。 只有读类
21、型(SELECT) 查询会被缓存,因为只有这种查询会产生结果集。 v激活缓存激活缓存 在服务器上创建一个可写的目录以便保存缓存文件。 在文件application/config/database.php中$dbxxxxcachedir 设置其目录。 激活缓存特性,可以在文件 application/config/database.php 中设置全局选项$dbxxxxcache_on=TRUE,或使用$this-db-cache_on() / $this-db-cache_off()手动设置删除缓存删除缓存$this-db-cache_delete() 和 $this-db-cache_dele
22、te_all()高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十四、安全十四、安全v不安全因素: 通过url恶意访问 sql注入 xss攻击vCodeIgniter 严格限制 URI 中所能包含的字符,以此帮助你设计的程序减少被恶意数据入侵的可能。v在接收任何数据到你的程序之前,不管是表单提交的 POST 数据、COOKIE 数据、GET数据,都推荐你实践下面的三个步骤: 过滤不良数据 (XSS 过滤) 验证数据以确保符合正确的类型、长度、大小等(表单验证) 在提交数据到你的数据库之前将其转换 (插入数据库之前转义所有数据)高级高级软件软件人才实作培训专家人才实作培训专家! !北京传智播客教育 主讲: 王超平十五、错误及调试十五、错误及调试vCodeIgniter将允许你建立自己的错误报告 show_error() show_404() CodeIgniter会在找不到目标控制器情况下,自动显示404消息。 log_message()使用分析器将在页面下方显示基准测试结果,运行过的 SQL 语句,以及 $_POST 数据。这些信息有助于开发过程中的调试和优化。该分析器无须手动初始化,只需按照下面的方式激活,他将被输出类自动装载。在控制器中设置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030传统木工技艺在当代实木产品中的应用价值报告
- 共享智能办公设备租赁合同
- 劳务合同中的违约责任解析
- 公司网站进行功能开发合同5篇
- 2025年城市公园绿化实施规划可行性研究报告
- 智能家居安全竞品分析2025年技术可行性研究报告
- 2025年市场适应能力评估研究报告人工智能在医疗影像诊断中的应用
- 动产租赁合同示范文本
- 教育产品代理合作合同模板
- 智能交通规划2025年城市交通规划与交通规划信息化建设可行性研究报告
- 24.1.1《圆》数学人教版九年级上册教学课件
- 乳品领域:认养一头牛企业组织架构及部门职责
- 宠物乐园方案
- 自备车补贴申请表
- 注塑成型技术培训之工艺理解课件
- 信息论与编码(第4版)完整全套课件
- 广西佑太药业有限责任公司医药中间体项目环评报告书
- 汽修厂安全风险分级管控清单
- 海绵城市公园改造施工组织设计
- 上体自编教材-体育运动概论-模拟
- 05625《心理治疗》案例分析
评论
0/150
提交评论