CodeIgniter框架PPT课件_第1页
CodeIgniter框架PPT课件_第2页
CodeIgniter框架PPT课件_第3页
CodeIgniter框架PPT课件_第4页
CodeIgniter框架PPT课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

CodeIgniter框架,一、CI简单介绍,如果.你不喜欢复杂,热爱简单。你想要一个小巧的框架。你需要广泛兼容标准主机上的各种PHP版本和配置。你想要一个几乎只需0配置的框架。你不希望被迫学习一门模板语言(虽然可以选择你喜欢的模板解析器)。那么CodeIgniter就是你所需要的CodeIgniter是一个小巧但功能强大的PHP框架CI的特点:简单免费MVC(关键),一、CI简单介绍,2013年最棒的4个PHP框架,二、下载并安装CI,下载地址:,三、网站结构及业务流程,安装CI文件后,我们来看一下目录结构分析各文件的功能,三、网站结构及业务流程,应用程序流程图Question:默认首页是如何显示出来的?,四、控制器,控制器是应用程序的心脏,因为它们决定如何处理HTTP请求。简而言之,一个控制器就是一个类文件,是以一种能够和URI关联在一起的方式来命名的。假设这个URI:,五、URL模式,默认情况下,CodeIgniter中的URL使用基于段的方法:,六、视图,视图就是一个网页,或是网页的一部分,如头部,底部,侧栏等。视图既可以是php文件,也可以是html文件,有时候也叫模板页面。在控制器中载入视图$this-load-view(视图文件,$data);其中$data是要传入视图的动态数据。模板语法,CI采用原生的模板语法,也就是直接在页面中使用php标签处理动态数据。载入多个视图,在控制器中使用多个load-view即可,如果每个视图都传递动态数据,只需在第一个视图传入数据。,七、模型,模型是专门用来和数据库打交道的PHP类。模型类文件存放在application/models/文件夹。定义模型继承基本模型类CI_Model定义相应的方法载入模型手动载入,在控制器中载入模型,$this-load-model(模型名)自动载入,在config/autoload.php中配置,八、数据库操作,1.数据库配置application/config/database.php2.连接数据库手动连接:$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()写操作辅助函数:$this-db-insert_id(),$this-db-affected_rows()其它辅助函数:$this-db-count_all(表名),$this-db-last_query(),$this-db-insert_string(),$this-db-update_string(),八、数据库操作-ActiveRecord类,AR数据库模式以较少的程序代码来实现信息在数据库中的获取,插入,更改。AR允许你创建独立的数据库应用程序,因为查询语法是由数据库适配器来产生的。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();,九、部署应用程序,思考:如何在一个CodeIgniter下运行多个应用程序?方案1,共享同一个CodeIgniter,创建多个应用方案2,使用分组功能,将控制器和视图分开方案3,扩展核心类扩展核心类扩展的类必须申明由母类扩展而来。新扩展的类所在的文件必须以MY_为前缀。所有原始CodeIgniter类库以CI_作为前缀,所以请勿以CI_作为你自己的前缀.所有的扩展核心类必须放到core目录中!扩展loader类和controller,十、CI辅助函数,辅助函数是帮助我们完成特定任务的函数。每个辅助函数文件仅仅是一些函数的集合(注意不是用类的方式来实现的)。每个辅助函数处理一个特定的任务,并且不必依靠其他函数。载入辅助函数手动载入:$this-load-helper(url)或$this-load-helper(array(helper1,helper2,helper3);自动载入:application/config/autoload.php中配置使用辅助函数直接使用即可,如URL辅助函数、CAPTCHA辅助函数扩展helpers,十、CI辅助函数之URL函数,URL辅助函数文件包含一些在处理URL中很有用的函数base_url():返回在config.php中设定的base_urlsite_url():根URL指config.php中指定的base_url和index_pageanchor():创建基于你的本地站点URL的标准锚链接redirect():跳转函数,十、CI辅助函数之CAPTCHA函数,验证码辅助函数用来生成图片验证码create_captcha($data)根据你指定的一系列参数创建验证码图像,返回值是一个包含此图像数据的数组。验证码辅助函数必须需要GD库.只有img_path和img_url参数是必须的.captcha目录必须可写(666,or777)扩展CAPTCHA函数,注意:要手动创建data/captcha目录,基于项目根目录,十一、CI类库,所有的类库文件存放在system/libraries文件夹载入类库$this-load-library(classname);$this-load-library(array(email,table);或者在autoload.php中配置以自动载入使用类库$this-classname-方法()创建自己的类库可以创建全新的类库可以扩展原始类库可以替换原始类库,注意两点:初始化CodeIgniter资源在初始化自定义类时传递参数,十一、CI类库之装载类,装载,顾名思义,是用来装载元素。这些元素可以是库(类)视图文件,辅助函数,模型,或者是你自己的文件。提示:这个类是由系统初始化的,所以,没有必要自己手动初始化。有了这个类之后,我们就可以装载各种文件了$this-load-library();$this-load-view();$this-load-model();$this-load-database();$this-load-helper();$this-load-config();,十一、CI类库之表单验证类,CodeIgniter提供了一个全面的表单验证和数据预处理类以帮助缩减你所写的代码。,十一、CI类库之输入类,输入类有两个目的:为了安全,预处理输入数据。提供helper的一些方法,取得输入数据,并预处理输入数据。说明:系统自动加载此类,不用手动加载。,十一、CI类库之文件上传类,CodeIgniter的文件上传类允许文件被上传。您可以设置指定上传某类型的文件及指定大小的文件。,十一、CI类库之图像处理类,CodeIgniter的图像处理类可以使你完成以下的操作:调整图像大小创建缩略图图像裁剪图像旋转添加图像水印,十一、CI类库之分页类,CodeIgniter的分页类是一个非常简单,并且100%用户自定义的类。,十二、CI超级对象,CI构建一个“超级对象”:它把你的整个程序当作一个大的对象。在config.php中开启日志以查看分析源码,探究超级对象形成过程,Controller.php,CodeIgniter.php,十三、缓存之页面缓存,页面缓存CI支持每个页面单独缓存,而且可以设置缓存更新时间。当一个网页第一次被加载的时候,缓存文件将被保存到application/cache文件夹。下次访问的时候,系统就会直接读取缓存文件,然后返回给用户的浏览器。如果缓存文件过期,它将被删除并重新生成。启动缓存在控制器(controller)的方法(function)内添加如下代码:$this-output-cache(n);其中n是你希望缓存更新的分钟数。可以使用m/60来精确到秒,例如1/60,则是精确到1秒删除缓存如果你不再想使用缓存,仅需将上面的代码从你的controller里面删除即可。,此处使用了输出类output,十三、缓存之数据库缓存,数据缓存数据库查询结果保存在文本文件中以减少数据库访问。首次被加载时,数据库查询的结果对象将会被序列化并保存在你服务器的文本文件中。而页面再次被加载时缓存文件将会替代数据库查询。如此,在被缓存的页面中,你的数据库使用率会降至0。只有读类型(SELECT)查询会被缓存,因为只有这种查询会产生结果集。激活缓存在服务器上创建一个可写的目录以便保存缓存文件。在文件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_delete_all(),十四、安全,不安全因素:通过url恶意访问sql注入xss攻击CodeIgniter严格限制URI中所能包含的字符,以此帮助你设计的程序减少被恶意数据入侵的可能。在接收任何数据到你的程序之前,不管是表单提交的POST数据、COOKIE数据、GET数据,都推荐你实践下面的三个步骤:过滤不良数据(XSS过滤)验证数据以确保符合正确的类型、长度、大小等(表单验证)在提交数据到你的数据库之前将其转换(插入数据库之前转义所有数据),十五、错误及调试,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_systempre_controllerpost_controller_constructorpost_controlle

温馨提示

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

评论

0/150

提交评论