CodeIgniter框架入门教程——第一课 Hello World!
本文转载自: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框架的视图和模型。
第一课源代码下载地址:
CodeIgniter框架入门教程——第一课 Hello World!的更多相关文章
- CI(CodeIgniter)框架入门教程——第二课 初始MVC
本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...
- CodeIgniter框架入门教程——第三课 URL及ajax
本文转载自:http://www.softeng.cn/?p=74 这节课讲一下CI框架的路由规则,以及如何在CI框架下实现ajax功能. 首先,先介绍CI框架的路由规则,因为CI框架是在PHP的基础 ...
- 160921、React入门教程第一课--从零开始构建项目
工欲善其事必先利其器,现在的node环境下,有太多好用的工具能够帮助我们更好的开发和维护管理项目. 我本人不建议什么功能都自己写,我比较喜欢代码复用.只要能找到npm包来实现的功能,坚决不自己敲代码. ...
- Elasticsearch7.X 入门学习第一课笔记----基本概念
原文:Elasticsearch7.X 入门学习第一课笔记----基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...
- 《进击吧!Blazor!》系列入门教程 第一章 8.部署
<进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门教程视频,此教程能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...
- 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 ...
- Go-Micro框架入门教程(一)---框架结构
Go语言微服务系列文章,使用golang实现微服务,这里选用的是go-micro框架,本文主要是对该框架的一个架构简单介绍. 1. 概述 go-micro是go语言下的一个很好的微服务框架. 1.服务 ...
- Newbe.Claptrap 框架入门,第一步 —— 开发环境准备
Newbe.Claptrap 框架依托于一些关键性的基础组件和一些可选的辅助组件.本篇我们来介绍一下如何准备一个开发环境. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如 ...
- NeHe OpenGL教程 第一课:OpenGL窗口
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
随机推荐
- Jquery DataTables相关示例
一.Jquery-DataTables DataTables 是jquery的一个开源的插件.它具有高度灵活的特性,基于渐进增强的基础,可以为任何表格添加交互.它特性如下: 提供分页,搜索和多列排序: ...
- nginx 配置wordpress固定链接(自定义)
今天在wordpress 下配置文章固定链接的时候,遇到了404的错误.我首先在wordpress下的设置里的“固定链接”配置页面,自定义链接的结构 “http://www.haozi8.com/%p ...
- HBase 高性能加入数据 - 按批多“粮仓”式解决办法
摘要:如何从HBase中的海量数据中,以很快的速度的获取大批量数据,这一议题已经在<HBase 高性能获取数据>(http://www.cnblogs.com/wgp13x/p/42451 ...
- Python开发之【简单计算器】
开发一个简单的python计算器 1.实现加减乘除及括号优先级解析 2.用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * ...
- hdu 4832 Chess(dp)
Chess Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- phpcms v9调用多个栏目下文章的方法
示例:{pc:get sql="SELECT * from v9_news where status=99 and catid in(6,7,8) order by id DESC" ...
- OpenStack neutron删除网络设备出错解决办法
目标:要删除外网Ext-Net2 直接删网络也会出错:因为有一个或多个端口在使用该网络 root@controller:~# neutron net-list +------------------- ...
- 【MVC 4】5.SportsSore —— 一个真实的应用程序
作者:[美]Adam Freeman 来源:<精通ASP.NET MVC 4> 前面建立的都是简单的MVC程序,现在到了吧所有事情综合在一起,以建立一个简单但真实的电子商务应用 ...
- Unity 2D Skeletal Animation
本文记录在Unity中制作2D 骨骼动画的笔记 Unity版本:4.3 Uni2D 使用骨骼动画前,把Sprite Mesh 的Type 改为 Grid ,设置合适的骨骼数量和分配权重 1.选中创建好 ...
- QTP基础学习(二)启动与设置
1.启动QTP选择要求的Add-in 默认带有3个Add-in,之后可以安装其他的Add-in,如.net的Add-in 2.设置QTP的选项 点击Tools-Options,弹出如下框: 3.建立记 ...