热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【军哥谈CI框架】之入门教程之第一讲:codeigniter的介绍和安装配置

大家好,我是军哥,欢迎和我一起共同学习和研究CI框架,本教程为《军哥谈CI框架》系列教程的CI入门教程

大家好,我是军哥,欢迎和我一起共同学习和研究CI框架,本教程为《军哥谈CI框架》系列教程的CI入门教程,在开始本教程之前呢,军哥需要说明一下的是虽然本教程为学习CI的一个入门教程,但是也需要你有系统的学习过HTML、CSS和PHP,当然还要有MySQL等数据库的基础,另外最好是有面向对象的基础,毕竟CI是用了面向对象的开发结构和MVC的模式。所以,军哥奉劝那些一点HTML和PHP基础都没有的兄弟就别在这浪费你的时间了,还是先脚踏实地的打好基础再说吧。

好,我们开始今天第一讲,关于codeigniter的介绍和安装配置的学习

【本讲内容】


一、codeigniter(以下简称CI)的介绍;

我们一起来了解一下CI是什么?CI能够为我们做什么?以及CI的不足在哪里?

二、codeigniter的安装配置。

我们学习一个技术不是仅仅只是想知道它是什么和能为我们做什么,最重要的是我们要掌握和使用它。其实CI的安装和使用是非常简单的,过一会你们就可以感觉的到~~

【具体内容】

一、CI的介绍。


1、CI是什么?

军哥喜欢用这样一句话来介绍CI是什么,CI是一个免费轻量级功能强大易扩展PHP框架,使用面向对象的开发结构和MVC模式,提供了一套丰富的类库来满足通常的任务需求。总之,CI简单易学,高效实用


那怎么样来解读这句话呢?我们接着看:

(1)、CI是一个PHP框架;

大家都知道PHP框架有很多,CI只是其中之一,框架是为了重用发明的。同样,CI的目标是实现让你比从零开始编写代码更快速地开发项目。CI可以将需要完成的任务代码量最小化,这样你就可以把更多的精力放到项目的开发上了。

(2)、CI是免费的;

CI是经过开源许可授权的,只要你愿意就可以使用它。

(3)、CI是轻量级的;

CI的核心系统只需要一些非常小的库,这与那些需要更多资源的框架完全相反。额外的库文件只在请求的时候加载,依需求而定,所以核心系统是非常快而且轻的。

(4)、CI使用M-V-C模式;

CI使用了模型(Model)- 视图(View)-
控制器(Controllers)的方法,这样可以更好地使表现层和逻辑层分离。

(5)、CI功能强大;

CI拥有众多的类库,可以方便并快速的完成开发任务,包括:读取数据库、数据的缓存、发送电子邮件、保存session、文件的上传、图像的操作、数据的确认等。

(6)、CI是易扩展的;

CI可以非常简单的通过自定义类库、辅助函数来进行扩展,或者也可以通过扩展类、系统钩子来实现。


(7)、CI不需要模版引擎;
虽然CI自带了一个可选的模板解析器程序,但不要求你必须使用模板。模板引擎完全与本地化PHP代码的性能需求不符,使用模板引擎我们要学习其语法,这最低限度只比学PHP基础要容易一点点。


(8)、CI已彻底文档化;

程序员都喜欢写代码讨厌写文档。当然我们也一样,但是既然文档和代码本身一样重要,我们就要完成它了。况且我们代码资源极其干净而且方便注释。


(9)、CI拥有一个友好的用户社区。


2、CI能够为我们做什么?

如果你已经是一位PHPer, 开发过PHP应用, CI将会帮助你做得更好, 更容易达成目标。
CI会减少你的代码数量。它会使你的网站结构更紧凑,代码更强健,
如果不是很好地研究CI的源代码的话,你可能还无法察觉到它的强健。

对大多数兄弟来讲,你可能已经花了不少时间,
系统地学习了PHP、HTML和CSS,当然还有MySQL什么的。不过如果使用CI,你只需要一些基本的LAMP(WAMP)知识,
你没有必要先成为一个专家才能使用CI。
你完全可以先借助于CI或别的什么框架,成为一个有生产力的PHP程序员,拿着高薪然后优雅地进一步学习PHP的中高级知识,直至成为一位真正的PHP骨灰级人物。

(1)、节约时间;

节约的时间包括两个方面,一方面呢,由于CI入门相当简单,所以学习周期短,见效快!另一方面,其实通过刚才对CI的介绍,我们很清楚CI能够为我们节约很多的开发时间。

(2)、轻松编程、享受编程乐趣,而不是一个干苦活的体力工;

CI能够让你更好的享受编程的乐趣,因为它减少了你的编码重复的工作,而且它也建立一个合理的系统结构,让你很轻松也很方便的管理更为复杂的程序。

(3)、减少代码量;

举三个例子你就知道了。
示例一:想象一下你正在写MySQL查询,可能的代码如下,




  1. $link = mysql_connect(""主机名,"用户名","密码");
  2. mysql_select_db("数据库名", $link);
  3. $result = mysql_query("SELECT * FROM 表名", $link);
  4. while ($row = mysql_fetch_assoc($result)) {
  5.      foreach ($row as $v) {
  6.          echo  $v['name'];
  7.      }
  8. }



那我们看看CI如何来处理这个问题:




  1. $this->load->database('数据库名');
  2. $query = $this->db->get('表名');
  3. foreach ($query->result() as $row) {
  4.      echo $row->name;
  5. }



示例二:例如军哥在写phper小站的菜单页时,上面有许多的超链接需要重定向到网站的其他页,我们可以用传统的HTML格式编写(当然这里只是举例,实际会有些不同),







  1. ……



而我们CI给你一个函数,可以这样写,




  1. echo anchor("jayjun/doc/start/2","PHP入门");
  2. echo anchor("jayjun/doc/oop/3","面向对象");
  3. echo anchor("jayjun/doc/design/4","设计模式");
  4. ……



当你的网站现在需要由开发环境部署到服务器上,这时就需要你改变这个链接了,如果是传统的方式你只能手动的一个个去修改,而我们CI中的anchor函数会自动从config文件中提取相关URL,CI推荐你把你的URL放入一个config文件存储。因此,
当你修改一个URL时,你只需要修改config文件中的的对应链接,就一次那么简单。

示例三:想象你正在写一个性别的下拉输入框,下拉框中有三个选项,如下,







然而CI是把相关内容放入一个数组中,然后用自带的表单辅助函数来帮你做到,




  1. $sexarray = array('1'  => '男','2'  => '女','3'  => '未知');
  2. $str= form_dropdown('sex', $sexarray, '3');



以上只是减少代码量的几个简单示例,还有许多地方CI都可以做到这一点,具体请大家今后慢慢领略和体会吧~~

(4)、使你的网站更安全、更强健;


(5)、帮助你提高对面向对象思想的理解。

军哥一贯主张面向对象的学习分两步走:第一步是掌握其基本语法,要求熟练;第二步是理解其思想。我们知道第一步简单,反复练习即可做到,然而第二步对面向对象思想的理解可不是简单的反复练习就能做到的,这需要你有深入的理解和经验的积累才行。那怎么样才可以做到呢,其实啊通过对CI源码的研读以及分析会加深你对面向对象思想的理解,军哥就是这样做的,不妨你也试试~~。

3、CI的不足?

是的,它是不完美的!就像我们人一样,没有完美的个人。

二、CI的安装配置。


1、准备工作;
(1)、服务器的要求;
PHP 版本 5.1.6 或更新的版本。


(2)、称心的PHP编辑器。
PHP的编辑器有很多,没有一定要用哪一款编辑器这一说,用的习惯和熟练的就是最称心的。军哥用的是VIM编辑器。

2、下载CI;

建立好开发环境后,到CI网站http://www.codeigniter.com/下载最新版的CI框架,2.1.3是最新版。
下载后的CI目录结构如下:





具体分析我们下一节再讲。

3、一分钟:建立一个CI网站。

(1)、在根目录建一个文件夹,将解压的CI文件拷贝至该文件夹下;

例如军哥在根目录下贱了一个ci_demo的文件夹,然后将解压后的文件拷贝至ci_demo中。


(2)、配置文件;

找到ci_demo/application/config/config.php文件,将第17行设置为$config['base_url']=
'http://localhost/ci_demo';然后保存即可。


(3)、浏览器访问。

浏览器中输入http://localhost/ci_demo/index.php即可访问到CI网站,页面显示为CI的欢迎界面,你看是不是一分钟就搞定了呢。


那上面的结果是如何显示出来的呢?下一节我们就来具体分析CI的结构和CI是如何工作的。


推荐阅读
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
author-avatar
545229628_efb16a
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有