本文转载自:http://www.softeng.cn/?p=45

今天开始,我将在这里连载由我自己编写的《CodeIgniter框架入门教程》,首先,这篇教程的读着应该是有PHP基础的编程人员,如果你是PHP初学者,建议你先学习基础的PHP技术(包括:变量、选择、判断、循环、数组、面向对象、数据库操作等)以及基础的Web技术术语(包括:URL、页面、表单、交互等),之后再来学习本套教程。
       下面我先来介绍一下CodeIgniter框架。CodeIgniter是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架那么 CodeIgniter 就是你所需要的。CodeIgniter 是一个基于MVC框架的PHP开源轻量级框架,适合快速开发,相对与Zend Freamwork,其更容易学习和应用,而且CodeIgniter 入门简单,配置方便,适合有PHP基础,但初学MVC模式的编程人员,因为该框架较为简单,所以其帮助文档即可做为初学教程,现将代码及API文档发布如下。

CodeIgniter框架源代码下载地址:

http://pan.baidu.com/s/1hqqnaCW

CodeIgniter框架API手册下载地址:

http://pan.baidu.com/s/1eQvGKyI

接下来给大家介绍一下MVC框架是什么。MVC框架全名Model(模式)—View(视图)—Controller(控制器),用一种业务逻辑和数据显示分离的方法组织代码,使用MVC框架编写的源代码,方便维护、条理清晰,能够使程序员快速的定位到所有修改的代码位置,同时,因为业务逻辑和数据显示的分离,有效的提高了前后台开发人员的配合程度和开发速度。       现在来看看MVC各自的具体作用。Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据;View(视图)是应用程序中处理数据显示的部分也就是用户能够看到的界面,通常视图是依据模型数据创建的;Controller(控制器)是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据,最后,将模型返回的数据发送给视图,显示在界面上。
       MVC框架是怎样工作的呢?这其实是一个很重要的问题,对于标准的MVC框架来说,Controller层往往是程序的入口(网页的地址就是Controller层的地址),然后由Controller层加载View层进行显示(显示在浏览器上的页面其实并不是你输入的地址),在View层用户通过表单实现交互,表单将数据传回Controller层,由Controller层调用Model层进行数据处理、存储、读取等操作,然后Model层将处理结果返回给Controller层,Controller层再次加载View层显示处理的结果,这样就完成了一次完整的、标准的MVC框架下的用户交互动作,在我描述的这个交互过程中,请大家注意两个关键的词语:加载和调用,现在可能还不理解,在接下来的学习中,你将逐步体会到这两个词的区别和关系。为了更加直观的表示,我将整个交互过程用一幅流程图表示,如下所示:

必要的预备知识就是如此了,接下来,就进入正式的代码书写环节。下面,用CodeIgniter框架书写第一个程序——Hello World!
首先,从上面的源代码下载地址上下载CodeIgniter的源代码(本人用的是2.1.0版本),将下载到的压缩包解压,解压之后得到CodeIgniter_2.1.0文件夹,将这个文件夹放到你的web根目录下(本人用的是xampp集成开发环境,所以根目录为xampp/htdocs目录),然后修改文件夹的名字为CI_01(此处不修改也可,这里只是为了方便访问),然后在你的浏览器上输入http://localhost/CI_01/,如果能看到以下界面的话,代表你已经部署好了CodeIgniter框架。

接下来,来看看CodeIgniter框架的根目录结构。
 
       我们的代码编写工作,主要在application目录下完成,现在看看这个目录下有什么吧。
 
       大家可以清楚的看到,在application目录下,有着清晰的MVC结构,同时还有许多其他文件夹,在接下来的学习中,我们将逐步接触到这些文件夹。
       现在,使用你的编辑工具加载整个工程(CI_01目录),我使用的是Aptana Studio 3这款软件书写PHP代码。打开controllers目录下的(以后如无特殊说明,都是以application做为目录起点)welcome.php文件,在index方法中将

$this->load->view('welcome_message');

删除,写上

echo "Hello World!";

保存一下,现在再来看看http://localhost/CI_01/页面的内容呢?如果是下面这样,恭喜你,你的第一个CodeIgniter页面已经成功了。

总结:这一课我们了解了CodeIgniter框架的基本信息,目录结构,通过修改CodeIgniter的默认控制器,书写了第一个Hello World!程序,下一课,我们将学习,如何使用CodeIgniter框架的视图和模型。

第一课源代码下载地址:

http://www.softeng.cn/?p=45

CodeIgniter框架入门教程——第一课 Hello World!的更多相关文章

  1. CI(CodeIgniter)框架入门教程——第二课 初始MVC

    本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...

  2. CodeIgniter框架入门教程——第三课 URL及ajax

    本文转载自:http://www.softeng.cn/?p=74 这节课讲一下CI框架的路由规则,以及如何在CI框架下实现ajax功能. 首先,先介绍CI框架的路由规则,因为CI框架是在PHP的基础 ...

  3. 160921、React入门教程第一课--从零开始构建项目

    工欲善其事必先利其器,现在的node环境下,有太多好用的工具能够帮助我们更好的开发和维护管理项目. 我本人不建议什么功能都自己写,我比较喜欢代码复用.只要能找到npm包来实现的功能,坚决不自己敲代码. ...

  4. Elasticsearch7.X 入门学习第一课笔记----基本概念

    原文:Elasticsearch7.X 入门学习第一课笔记----基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...

  5. 《进击吧!Blazor!》系列入门教程 第一章 8.部署

    <进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门教程视频,此教程能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...

  6. Java - Struts框架教程 Hibernate框架教程 Spring框架入门教程(新版) sping mvc spring boot spring cloud Mybatis

    https://www.zhihu.com/question/21142149 http://how2j.cn/k/hibernate/hibernate-tutorial/31.html?tid=6 ...

  7. Go-Micro框架入门教程(一)---框架结构

    Go语言微服务系列文章,使用golang实现微服务,这里选用的是go-micro框架,本文主要是对该框架的一个架构简单介绍. 1. 概述 go-micro是go语言下的一个很好的微服务框架. 1.服务 ...

  8. Newbe.Claptrap 框架入门,第一步 —— 开发环境准备

    Newbe.Claptrap 框架依托于一些关键性的基础组件和一些可选的辅助组件.本篇我们来介绍一下如何准备一个开发环境. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如 ...

  9. NeHe OpenGL教程 第一课:OpenGL窗口

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

随机推荐

  1. linux配置文件的一些调优

    Linux中所有东西都是文件,一个socket就对应着一个文件描述符,因此系统配置的最大打开文件数以及单个进程能够打开的最大文件数就决定了socket的数目上限:但是linux是有文件句柄限制的,而且 ...

  2. 由IP和掩码计算广播地址

    public static IPAddress GetBroadcast(IPAddress ipAddress, IPAddress subnetMask) { var ip = ipAddress ...

  3. oracle表相关

    堆表 数据以堆的形式管理,增加数据时会使用段中找到的第一个能放下数据的自由空间,我们见到的绝大部分的表都是堆表.堆表是数据库的默认表类型. 最简单的情况是 create table test (c1 ...

  4. openfire+asmack搭建的安卓即时通讯(三) 15.4.9

    (能用得上话的话求点赞=-=,我表达不好的话跟我说哦) 上一次我们拿到了服务器端的组数据和用户信息,这就可以为我们日后使用好友系统打下基础了! 但是光是拿到了这些东西我们怎么能够满足呢?我们一个即时通 ...

  5. gunplot demo

    //author : Leon yangli0534@gmail.com #include <stdlib.h> #include <stdio.h> #include < ...

  6. uva 725 division(水题)——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABVMAAAOHCAIAAAClwESxAAAgAElEQVR4nOydybGturJFcQEPfgQu4A

  7. SQLConnect_ref.cpp

    // SQLConnect_ref.cpp // compile with: odbc32.lib #include <windows.h> #include <sqlext.h&g ...

  8. 合工大 OJ 1332 蛇形阵

    Description 蛇形针回字阵: 如3*3: 回字阵: 7 6 5 8 1 4 9 2 3 Input 多组数据: 每一行一个正整数n(n为奇数,<26),代表n*n矩阵. Output ...

  9. html5 实现video标签的自定义播放进度条

    现在随着html5的渐热,越来越多的web开发者都开始选择使用html5写出一些比较好的web应用. html代码: <!DOCTYPE html> <html lang=" ...

  10. Unity3d+Jenkins 自动编译iOS、Android版本

    1.在Unity3d中, 创建导出 iOS.Android 项目脚本 PerformBuild.cs ,放在Editor目录下(必须),如下: using UnityEditor; using Sys ...