ci学习(一).doc_第1页
ci学习(一).doc_第2页
ci学习(一).doc_第3页
ci学习(一).doc_第4页
ci学习(一).doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

ci学习(一)一开始看CI的手册,有点不知所云,不知道它是干什么用的,虽然知道MVC就是模型,视图,控制器,但是怎么工作的还是不太明白,于是去网上找到了一个中文版的视频,是用CodeIgniter开发新闻发布系统,我没有完全照着视频做一遍,就是知道了大致的流程。我觉得要入门的话就看一下视频,之后遇到问题再去看手册是个不错的方法。看了视频以后我才知道模型是跟数据库打交道的,控制器可以把模型中的数据传到视图中,CI真好用啊,不用每次要用数据库的时候连接数据库,只要在config/autoload.php修改 library 数组就能自动载入,或者在函数中手动添加$this-load-database();。在控制器中,每个function就是一个页面,这个最基本的认识我到后来才领悟过来,惭愧呀。现在在试着用CI写留言板,可以登录和留言了,现在还缺分页,注册,审核,修改,删除功能,后面三个功能差不多,开头写的比较累,后面应该会比较顺利吧。之前有一个问题纠结了我很久,现在倒是找到原因了,原来是我在模型中,用错了函数,返回的类型错了。CI其实入门还是比较简单的,套用某人说的,CI就是什么都给你了,只要在里面添砖就行了。不过貌似任何事情入门都是比较简单的,但是要学深了还是要很大功夫的。之前很早就有接触过ci了,但是一直没有坚持住学习下去,只能继续加油啦,哈哈CodeIgniter 安装分为四个步骤:1. 解压缩安装包。 2. 把 CodeIgniter 文件夹和里面的文件上传到你的服务器。通常 index.php 在根目录。 3. 用任何文本编辑器打开 application/config/config.php 去设置你的网站根 URL。如果你打算使用加密或 Session,请设置你的加密密钥。 4. 如果你打算使用数据库,用任何文本编辑器打开 application/config/database.php 去设置你的数据库参数。 如果你希望通过隐藏 CodeIgniter 文件的位置来增加安全性,你可以修改 system 目录的名字,把它改成任何你想改的。如果已经修改了名字,你必须打开你主目录下面的 index.php 文件设置里面的 $system_folder 变量,把它设成你新改的名字。先说说MVC:MVC(Model-View-Controller,模型-视图-控制器)是一种可以简化应用程序开发和维护的设计模式。为了实现这一目的,他将应用程序分隔到三个逻辑组件中。模型层(Model)负责应用程序的商业逻辑。它将封装访问数据库的方法并提供一个可重用的类库。通常,在模型中,你将发现勇于数据库抽象、电子邮件发送、校验和验证等机制。视图(View)通常包括web设计或者模版设计等工作。他控制了数据的外观并且提供了从用户收集数据的机制。在视图中通常会找到的视图特有的技术,包括HTML,CSS,JAVASCRIPT。控制器(Controller)。控制器层将所有的事项连接在一起,并且将视图设计和模型功能合并在一起。他负责从视图中收集数据,并决定程序的执行逻辑。控制器会通过调用模型的机制并解析返回的数据,以便这些数据能够被视图所展示。它还负责将所有应用程序的异常控制和流控制ci的控制器,页面/index.php/blog/cole/会试图去寻找application/controllers/ 下面的blog.php 然后执行blog这个Blog类(类名称需要用大写字母开头)里面的cole这个方法,如果你的 URI 超过两个部分,那么超过的将被作为参数传递给方法,此外,需要注意的是如果使用function _construct的時候,继承的父类的_construct会被重写在此方法里面必须再次调用父类的construct 这样parent:Controller();ci的视图,一个视图就是一个网页,或是网页的部分,如头部,底部,侧边栏等等。事实上,如果你需要这种层次类型,视图可以很灵活的嵌入到其他视图中。视图从不直接调用,必须被一个控制器来调用。记住,在一个 MVC 框架中,控制器扮演着交通警察的角色,那么,他有责任去取回某一特定的视图。可以通过$this-load-view(视图名称)来载入视图,视图文件保存在.php格式的文件中,载入是不用带上扩展名.数据通过控制器以一个数组或是对象的形式传入视图 , 这个数组或对象作为视图载入函数的第二个参数,当我们一次性载入多个视图的时候,你只需在第一个视图传入数据就可以了。请注意,在控制器注册的时候,只能注册一个数组,不能注册变量,如果你要注册一个变量,那么也要用一个数组保存这个变量。eg:name;$this-load-view(blogview,array(name=$name);?视图部分,只需这样输出说得明白点就是在视图的部分,直接用键名作为变量名,CodeIgniter已经为你遍历整个数组了,在控制器中只能注册一个数组,如果需要传入多中数据,可以通过赋值给数组的不同健名来存储,然后再把数组作为参数传入。以下做法是错误的。name;$datato= array(Clean House, Call Mom, Run Errands);$this-load-view(blogview,$data);$this-load-view(blogview,$cole);?而应该如下进行name;$datato= array(Clean House, Call Mom, Run Errands);$this-load-view(blogview,$data);?ci的模型,模型是专门用来和数据库打交道的PHP类,模型可以在Controller中被应用,就像这样:$this-load-model(Model_name);模型一旦被载入,你就能通过下面的方法使用它:$this-load-model(Model_name);$this-Model_name-function(); CI学习总结CI学习总结1、什么是框架?框架就是一个没写完的网站,提供了一些基础的功能,比如安全检查,表单难,数据库连接等。其它人可以在上面开发自己的东西。框架把一些烦琐重复而没有创造性的工作帮你做好,而让你从事具有创造性的工作。不过使用框架对执行速度有影响。2、什么是CodeIgniter?CodeIgniter是一个小巧的php框架,名称由两个单词组成,code代码Igniter点火器,连起来意思是代码点火器(什么意思?),简称CI3、Application文件夹可以移动么?可以移动或改名,修改后需要在index.php里把$application_folder = “application”;这句修改成相应的路径和名称。但是application下的controllers、models、views不能动。4、什么是MVC?复杂的不说了,人们都在讲这个,简单点儿几句话:m跟数据打交道,V跟界面打交道,C把M和V连起来,把从M取到的数据交给V显示。5、CI中怎么连接数据库?在application/config/database.php里面修改连接参数,然后在需要连接数据库的时候载入数据库就可以了。view sourceprint?1.$this-load-database();6、如何取得post数据?可以使用传统的php方法,view sourceprint?1.$_POSTname2.或者$this-input-post(name);7、CI可以使用$_GET么?不可以,如要实现类似功能,参考下面一问。8、如何得到URL地址中的参数?第一种办法:$this-uri-segment(n),n 为你想要得到的段数,具体可以查手册。第二种办法:假设URL是这样:/index.php/blog/list/3/myname在blog的list方法可以这样写:view sourceprint?1.function list($id,$name)2.3./$id=34./$name=myname5.$id和$name得到链接中的参数,如果参数个数不一样会提示404错误。9、VIEW怎么相互引用?view也是php文件,可以直接include,也可以在view里使用load:view sourceprint?1.$this-load-view(View_name);这个以实现VIew共用,分享网页头和尾。10、View里怎么调用CSS和JS?在VIEW头部这么写:view sourceprint?1.link href=css/tabs.css rel=stylesheet type=text/css /2.script type=text/javascript src=js/jquery.jsbase_url是网站根目录地址。11、可以给一个view传递多个参数吗?只能传递一个数组或对象参数,但是数组或对象可以想多复杂就多复杂。12、controllers下可以建子目录吗?可以,但只能建一级子目录13、Controller是否可以互相调用?不可以,可以用以下方法替代解决:1.代码写到model里,调用model。2.代码写到其他类里,比如库、插件、helper等。3.扩展Controller,代码写到My_Controller里,继承。(sinopf in )我的学习方法第一天看手册第二天逛CI论坛,搜索一些关键词,比如:VIEW 数据 安全 登录 验证等。一方面回顾手册里的知识,另一方面,了解大家以前遇到过的问题及解决办法,避免以后走弯路。比如我搜索到CI自带的SESSION不好用,我以后就不会在SESSION这个问题上折腾了,直接使用kndb session第三方类库。第三天,看里的视频,照着做一个blog。接下来,看源码,下载一个使用CI的开源系统看看,然后动手自己写。怎么(如何在CODEIGNITER中)在CI中引入(用)外部的JS与CSS呢?PHP CI框架里面引用CSS文件无效果其实不管是在用CI还是ZF都有同样一个问题,就是路径的问题。前期,我在用ZF做CMS时,我在.htaccess文件中设置了如遇到js,css,img等资源文件都不重定向。但今天在用CI时,却忘记了,搞了很久都没有出来,上了CI的中国官方网,终于在他们帮助下把问题觖决了,在这里把它贴出来,供大家分享。(另注:我这里是隐藏了url中的index.php文件的,与不隐藏有所不同,但最终都是采用绝对URL)首先,我在.htaccess文件里设置(作用是隐藏index.php),如下:RewriteEngine on RewriteCond $1 !(index.php|images|js|img|css|robots.txt) #在这里写要排除的资源等RewriteRule (.*)$ index.php/$1 L我把JS,CSS,IMG等资源文件夹与SYSTEM文件夹放在同一级下,然后在JS文件夹中建立ajax.js文件,我在VIEW层中的文件为index.html。这样我要引入JS时,如下:注这里url是你的网站绝对URL(绝对 URL,就是 http:/domain/js/ajax.js 这样叫做绝对 URL)到这里就行了。当然为了可维护性,你也可以用CI自带的BASE_URL来设置,如下:进入 applicationconfigconfig.php文件,在config.php文件中设置base_url:$configbase_url =http:/www.exiplode/com; /这里是你的网站根目录设置好后 再controller某处$this-load-helper(url),然后再在VIEW层中具体页面中引入即可:script type=text/javascript src=好了,CI中引入外

温馨提示

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

评论

0/150

提交评论