版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP(2014版)第七本:ci框架*****************说明搜索php”或者”或者网”,可以找到,的持续关注***************php现在我们看到的是2014的最终版,它的书单如下:第二本:web发第七本:ci框架第八本:tp框架第九本:yii架我们会在后续的版本中,做成最成体系的php***************网 ,就是”四个网,开放共享的it*****************与君共勉当学习成为一种习惯,进步就是一知识,传递。我心永恒,始终如一*******************关于作者个人博客个人邮箱 前 第一部分:Codeigniter第一节:ci简 第二节 结 第三节:接下来的任 第二部分:mvc第一节:url与控制 第二节:视 第三节:数据库与模 第四节:整体流程及mvc实 第三部分:附加说第一节:内容推 第二节:关于 前*************框架们对它们经过加工,就成了框架。直接拿过来用。每一门语言都有很多框架,当然这点php好了一个框架,那么做事的方式也就基本确定了,也就是我们只需要向里面填充内容即可。我们重复性的工作给做好了。************php框架简介写这个前言写了几次都写烦了,先给大家一个2014初2013底的php流行框架的吧:可以看到laravel独占鳌头,是一个非常优秀的框架,codeigniter的流行程度也还不错其实我最早研究的php框架就是ci,究其原因就是听人说它简单,单很多了已经第一节:ci简介******************ci历史这里的ci就是Codeigniter的简写形式,而code翻译过来就是“编码、代码”,而igniter译过来就是“点火器”,所以ci图而说到ci历史,它是从2006始的一个框架了,确切来说是2006年2月28日,发布了ci的1.0的测试版。之后在2009的911布了1.7.2后就不再更新1.x列了,开始了2.x系列。在2014年6月5日发布了2.2.0版本,这个就是以2.2.0版********************官网首先说一下ci的官网吧,地址是:ht /codeigniter,然后还有个中国ci社区,它是基于discuz来建立的,感觉还是蛮不错的,里面有不少关于ci源,里面包括有中文的手册,感觉不过说实话我用ci并不多,这个也不是经常去,不过表示尊去转转,会有不少收获的。*****************我们可以到ci社区去,也就是http://c 首页有个这种图标,我们即可:下来之后解压完毕,发现也只有不到4MB,对于一个框架来我们对这个文件夹中的内容来个截这里也只有三个文件夹和两个文件,这里的system就是框架的代码,这里的application就是我们要编写的应用的文件夹,这里的user_guide就是用户说明,这里的index.php就是统一 这里的license.txt文件就是 了。*******************开发环境配置由于我是用的是wamp,我不知道读者朋友们使用的是什么环境,我们在根 下新建一个ci文件夹,把上面的文件夹拷贝到该文件夹下,然后在浏览器中输入localhost/ci/index.php文件。然后如果我们看到如下界面,则说明框架安装如果读者朋友们安装完毕,那么恭喜你,可以继续进行了,如果安装过程出了问题,也不要着急,仔细阅读一下上述步骤,看看是哪个环节有问题。好运,加油****************ci特色总体来说,ci的特色就是:简单、方便、小巧因为框架的代码只有1.2MB,也算是比较小的了php代码即可。总的来说,ci就是简单,甚至感觉比还简单,可能也就一句话总结ci就是:简洁、清晰第二节 结 结构 想可能有和我差不多的朋友。那么我们首先对ci框架下 结构来个说明吧这里介绍下,这个system夹里的内容就是ci框架代码,我们一般是不用去管的application就是和我们的项目有关的,是user_guide是用户手册,里面是html它介绍了框架的方方面面,项目上线之后,这个文件夹删掉即可而index.php文件就是一个统一的 文件,我们讲url的时候再细说,而license.txt文件则是 *****************system文件夹这个文件夹中的代码就是ci框架的代码了,来个截图上面就是cici是开源的嘛,而且里面都是php代码,我们完全有能力通过阅读其源代码来看看其内部机理是如何****************application下面我们看一下application这个文件夹都有哪些内容吧 们比较关心的就是controllers、models和views和config这四个文我们在看一下controllers文件夹下的文件吧下面我们打开这个文件,修改其中的index法,修改为如下内然后我们在地址栏中输入localhost/ci/index.php,然后看到效果如看到了吧,我们在刚才的 e.php中的index方法中写的PHP语句起作用了,那么它是如何找到我们这个语句的呢?这些内***************user_guide文件夹下面我们来介绍一下user_guide文件夹吧,这里我来个截然后我们随便打开一个看一下,发现全部是html文件其实这些html文件都是可以双击打开看的,它们就是对一些问题如benark是测试用的,而caching是和缓存相关的,而calender则是和日期相关的等等,这些需要读者去积累了。*********************小结可能读者朋友们感觉这一节并没干什么事,确实差不这一节我们主要认识了它的结构,如果读者朋友们有过项目经验,一眼就可以知道这些是干什么的,如果没有项目经验,第三节:接下来的*************一句试金石记得曾经和一个人聊天,他“两个小时还学不会一个果一个框架两个小时还不能,我们为什么要用它呢?**************致读者我希望大家记住一件事“这是一本,不是一本手册”因此它并不会带领大家讲解这个框架的所有细节,第一我没时间,第二我也不认为这样做很有必要。自始至终都是起到一个“”的作用。第一节:url与控制器对于web应用来说,url的重要性不言而喻,对于本地应用,我们可以点击鼠标和键盘来告诉程序执行相应令。对于web用来说,我们所做的一切都是通过url调用这些命令的,因此,基本所有的框架都对url有着较强的控制能力。为了加强对url的控制,通常需要一个统一 ,也就是这index.php文件,它是和system是同级的,来个截图子解释一下。*****************控制器我们首先到application文件夹下的controllers文件夹下新建xin.php文件吧,来个特这个xin.php的文件名是随便命名的,只名不是太过于奇葩然后我们打开这个文件,在它里面写入如下代这里我解释一下相关代码吧,第2行和第3行代码就是说未定常量BASEPATH就直接退出程序,这就是统一 因为这个常量是在index.php文件中,也就是咱们的 义的然后第5行定义的Xin这个类必须首字母大写,然后它首字母变CI_Controller个类,然后它有一个star法,这个方法名和方法是通过url了,我们构造如下url来:localhostciinde.phpinstar,效果如下:聪明的读者知道这个url是怎么构造出来的吗?它就是在index.php后面使用 /控制器/控制器的方法这种格式得到的,比如我们这里的xin就是控制器名,而这个控制器中有个star方法。*******************PATHINFO模式可能大家php是使用?和&以及=来传递参数的,如果我们的url中充满这种符号,这种形式的url被称为“普通模式”。现代的框架大都支持PATHINFO模式,也就是通过斜线/来风格url,让url更加美观,而且对SEO更加友好,也就是所谓的“伪静比如我localhost/ci/index.php/xin/star,是不是比localhost/ci/index.php?c=xin&a=star要美观一些呢?我们通过url定位到相应的文件,然后去执行相应的控制器中的相应方法,比如localhost/ci/index.php/xin/star中我们执行的是Xin控制器中的star方法。其实我们还可以在这个控制器中再写一个方法,然后再通过url调用它,我们在xin.php中再添加一个方法吧:那么要调用这个方法,我们该怎么去写这个url其实我们这么写就可以了:localhost/ci/index.php/xin/cat,然后我们看一下效果读者朋友们明白如何去调用了吗?应该没问题吧***************动作************参数如果一个动作中需要参数,又该怎么办呢?下面我们还是xin.php添加一个需要两个参msg法那么我们此时的url又该如何去设置呢?其实这个是和框架有关的,有些框架比如就是这样的:有些框架比如咱们的ci是这么写也就是说,大家注意,这里的Starmale是我们通过url递进去的参数,我们的ci在url中是不需要传递n和g这两个形参的。我们输入localhost/ci/index.php/xin/msg/Star/male 但是如果我们使用一个中文url呢localhost/ci/index.php/xin/msg// ,我们看看效果吧这里就涉及到ci它的源码,对于这种情况解决之道有很多,我给出最简单的那一种吧,我们直接修改sg这个动作的源代码:那么下面我们看一下效果可能有些读者开始提出疑问了:此时的英文参数还能正常显示吗?答案是可以的,比如:当然,对于url能会出现各种各样的奇形怪状的问题,我也无力***************小结读者朋友们是否对控制器有了一个比较清晰的认识呢nole我们通过设置相应的url来相应的控制器中的动作,来执行相这里说一下吧,如果控制器的动作为index话,在url的时候可以不写出来。也就是说当我们不指定任何动作的时候,它会默认调用index这个动作。这就是ci中的控制器的基本第二节:视还是在我们的application件夹下,还记得我们的views件夹我们对views文件夹来个特的php文件,我们打开看看吧:可以看出,这里就是比较基本的html代码和php代码的混编为.php格式的文件即可。*****************写一个视图文件我们在views下新建一个demo.php文件吧,写入如下内容然后我们在controllers新建一个demo.php件,写入如下内然后我们在urllocalhost/ci/index.php/demo/show后我大家是否清楚这个调用过程了呢?我们使用视图的步骤如下:第一步,在iews下新建一个视图文件,比如我们的deo.php文件,第二步在conrollers下新建一个控制器文件,比如我们的deo.php文件,这里需要说明一点,就是这两个文件名并没有什么关系,都是可以随便命名的。第三步,我们在控制器中调用视图文件,怎么调用呢?我们通过在控制器的动作中写$hisodedeo);就可以了,它会自动加载其中的视图文件的。那么可能有人会说:为什么这样会执行呢?其实说:这就是ci我们做的,当然如果让我们去写一个框架,我们也可以规定别****************使用变量我们的ci是没有自己的模板语法的,我们在模板中使用原生的php语句就可以了。我们在视图文件中使用php的echo语句来进行输出,不过此时大家必须注意的是我们使用了两个变量,也就是$nick和$name,那么,们把原来的show动作的代码改成下面这样:大家需要注意的是这里我们的$data组中携带了视图中所需要的一切数据,然后在$this->load->view个方法中,它的第二个参数那么我们看一下效果吧了,它是怎么做到的呢?就是通过一个data组,这个数组中的键出了范例。***************控制器与视图如果我们要加载多个视图,只需要如下的格式即可views件夹下又建立了一个my那么我们要使用它下面的test视图,就可以在控制器中这么写:总的来说,由于ci简单,没有自己的模板语法,所以,视图***************小结在ci中,一个视图就是一个php文件我们要调用这个视图文件,在控制器中使用$this->load->view这第三节:数据库与****************数据库在很多框架中,数据库的使用都显得比较复杂,但是,在ci中,咱们不黑不吹,ci是我见到的使用数据库最简单的框架之在使用数据库之前,我们首先配置一下相关参数吧********第一步*********配置参数首先我MySQL建立一个数据库xinci,并且设置为utf8然后我们在这个数据库中新建一个user表,然后插入四条数据然后我们来到application件夹下的config件夹,这里是所有我们首先对里面的database.php文件来个特写吧,顾名思义,它然后我们打开它,修改其中相应的至此,数据库的配置工作已经完毕了************第二步**********创建模型我们在application 下的 下新建一个文件,然后写入如下代码Model类,它也应该首字母大写,而且也应该继承自CI_odel类,这里我们在构造函数中加载了dataase,也就是加载了db这一项。在之后我们定义了一个msg方法的目的就是从user中取出前3条数据,然后把它的结果集return出去。那么其他函数,大家可以查阅相关手册,这里我就不废话了大家抓住它的主线即可,也就是在Model用的是db来数据库,记得在构造函数中load一下db奥。我接触过的框架中,比较经典的框架中对数据的操作都很有特色,这个过程中充满了新意和好奇,因此,学习的过程中充满了快**************第三步*******在控制器中调用然后我们在controllers文件夹中新建一个db.php文件,写入如下其实这里还是蛮简单的吧,这里的第7我们加载了这个user型,第8行我们调用了user这个模型的msg方法,这个msg方法就是在User中定义的,还记得吗?我们运行一下这个页面吧,看看效果这里我们回忆一下整个过程:首先我们在Model层中定义相应的函数,也就是Model层是直接db的,然后我们在Model层暴漏一个接口给Controller,然后C层只需要调用M层提供的方法就可以了,比如同样的一个log方法,当业务变化的时候,只需要在M处变换就可以了,其他的多个调用M的地方都会相应的随读者朋友们是否思路清楚了呢***************小结说实话,ci的Model层还是蛮简单我们只需要在models中定义相应的Model模型,然后在C层首先通过$this->load->model载这个模型,然后我们就可以把这对于M层我们就介绍到这里啦,还是那句话,内容,请看手第四节:整体流程及mvc实*****************运行流程所谓运行流程就是从一个url始被解析,直到相应的功能被执行对于上述过程,我们看给出的简图那么这个图是什么意思呢?我给大家解释一下第一步,由于urlindex.php/xxx/xxx样的格式,那么其实它是把控制权交给了index.php这个文件,它起到了调度全局的作用,初始化运行Codeigniter所需要的全部资源。第二步给Rouer,它负责查HTTP求,以及确定执行程序执行完毕。第三步就是如果缓存不存在的时候,那么就经历Security这一关,来对HTTP请求和用户提交的数据进行过滤。第四步就是过滤后的数据被发送给Controller,也就是控制器,而控制器则会通过和各种的Drivers(驱动)、Models(模型)、Libraries(类库)进行交互,然后得到需要的结第五步就是得到视图,也就是咱们的View存,就直接把结果返回给浏览器。整个执行过程就是这样*****************再看基本上对于每个框架来说,了解它是怎么实现mvc的至关重要,我们看一下ci是如何定义的这三部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年扬州市江都妇幼保健院公开招聘编外合同制专业技术人员备考题库及一套答案详解
- 2026年南方公证处公证员招聘备考题库及一套参考答案详解
- 2026年云南业图人工智能数据标注基地“AI人工智能训练师”招聘备考题库(第三期)及一套完整答案详解
- 2026年北京大学中国卫生发展研究中心徐进课题组科研助理招聘备考题库参考答案详解
- 2026年包头市东河区教育系统校园招聘教师19人备考题库(内蒙古师范大学考点)及完整答案详解一套
- 2026年中共天台县委宣传部下属事业单位公开选聘工作人员备考题库及一套参考答案详解
- 2026年中铝(郑州)铝业有限公司招聘备考题库含答案详解
- 2026年凯盛重工有限公司招聘备考题库及完整答案详解1套
- 2026年中化学开发建设有限公司招聘备考题库附答案详解
- 2026年乐山市沙湾区医疗集团嘉农镇中心卫生院招聘备考题库参考答案详解
- 2025年中国电子产品租赁行业市场占有率及投资前景预测分析报告
- 商务泰语会话教程课件
- 套改士官申请书
- 2025年1月浙江省高考地理试卷(含答案)
- 电缆更换施工方案
- 风筝制作教育课件
- JCT 871-2023 镀银玻璃镜 (正式版)
- 2024年广东深圳市龙岗区南湾街道综合网格员招聘笔试冲刺题(带答案解析)
- 临床研究数据清洗与质量控制
- 基础拓扑学讲义答案尤承业
- 浅析幼小衔接中大班幼儿时间观念的培养对策 论文
评论
0/150
提交评论