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管线 ...
随机推荐
- Sql Server 高频,高并发访问中的键查找死锁解析
死锁对于DBA或是数据库开发人员而言并不陌生,它的引发多种多样,一般而言,数据库应用的开发者在设计时都会有一定的考量进而尽量避免死锁的产生.但有时因为一些特殊应用场景如高频查询,高并发查询下由于数据库 ...
- 【nginx】负载均衡和proxy的配置
简介 使用upstream模块实现nginx负载均衡使用nginx_upstream_check_module模块实现后端服务器的健康检查使用nginx-sticky-module扩展模块实现Cook ...
- kafka常用的操作命令
1.kafka启动命令 nohup bin/kafka-server-start.sh config/server.properties & 2.创建topic bin/kafka-topic ...
- iOS -数据库网络之xml解析之远程解析XML
1.IOS中XML文件获取 //设置远程访问地址 NSURL *url=[NSURL URLWithString:@""]; //创建动态URL请求,并初 ...
- scau 8633 回文划分
8633 回文划分 时间限制:1000MS 内存限制:1000K 题型: 编程题 语言: 无限制 Description 我们说一个字符串是回文串,那么意味着这个串从两边读起来的字母都是一样的. ...
- linux搭建一个配置简单的nginx反向代理服务器 2个tomcat
1.我们只要实现访问nginx服务器能跳转到不同的服务器即可,我本地测试是这样的, 在nginx服务器里面搭建了2个tomcat,2个tomcat端口分别是8080和8081,当我输入我nginx服务 ...
- 如何用js实现截取一个字符串中的数字
比如var v ="我要提问1098";var v="我0要提问"var v="我还是要提问987"等我想要里边的 1098 ,0, 987 ...
- Linked List Cycle
Given a linked list, determine if it has a cycle in it. /** * Definition for singly-linked list. * s ...
- BI测试工具之跨数据库数据对比,支持oracle,sqlserver
应用场景: 本周在进行SIT,我帮助仅有的一个测试妹妹对部分表进行数据质量验证,第一步需要做的就是比对source与stage表的table definition 与 数据内容的一致性. 本项目使用的 ...
- 探索 OpenStack 之(11):cinder-api Service 启动过程分析 以及 WSGI / Paste deploy / Router 等介绍
OpenStack 中的每一个提供 REST API Service 的组件,比如 cinder-api,nova-api 等,其实是一个 WSGI App,其主要功能是接受客户端发来的 HTTP R ...