codeigniter和mvc
来源:互联网 发布:淘宝店的客服怎么设置 编辑:程序博客网 时间:2024/06/10 17:13
为什么用MVC
MVC如今在web开发中大放异彩。虽然其中包括代码的简洁和升级的便利等原因,但是首要原因还是他提倡的开发工作流。在开发团队中,MVC提供了有效的合作模式,他将各人的职责分为了三个主要的角色。
开发。开发人员是指处理模型的程序员。他们通常拥有与PHP、数据库管理、算法、构架和数据校验等方面的相关技能。这一角色通常会负责实现应用程序的编程细节,他们提供API,同时实施处理数据的策略。
设计。设计人员处理视图并负责实现应用程序的外观。他们具有如HTML、CSS、JavaScript和图形设计等方面的技能。通常,这一角色负责与外部的通信源交互以决定要开发或者增强的应用程序的现实的业务规则。设计通常会导致原型的开发,也就是创造能够显示理想功能的模型设计。
集成。集成工作存在于控制器层中。他将设计师和开发人员的工作连在一起。集成人员的经验通常比开发人员要少,他们负责切割静态模板并且制作应用程序所需的动态区域。他们还负责代理来自请求源的数据。他们将从表格中获取请求信息,请这些信息传递给模型,解释结果,并将结果传递给视图。
通过职责分工,开发方法的细节与开发需求的细节分开了,这使得创意学科和技术学科能够更加容易交互。
在一个典型的工作流中,首先设计师会根据现存的业务需求以及应用程序所要实现的功能,制作一个静态的、单独的原型设计。然后设计师将设计内容交给开发人员评审。
开发人员负责确保所有要求实现的功能是可行的,并且符合公司的安全和隐私策略。如果开发人员没有发现任何问题,他们就会创建一个开发计划,其中包括一个API模型,然后再交给集成人员。如果原型出现问题,项目会回到设计人员手中,这一个过程就再次从头开始。
准备好设计原型和API模型之后,集成工作就会开始。集成人员将研究原型设计,并将它转换成模板语言,如普通PHP、smarty等。这使得设计内容可以处理动态数据,并且将设计集成到完全有集成人员负责的URL结构中。然后编写一个控制器组件,这一组件会将请求(来自于表格、URL参数、cookie等)在web服务器和他们需要操纵的模型的模型信息之间代理分发。结果产生之后,获取视图并输出,并且控制器会提供所有动态内容的值。
最后,当API模型完全实现之后,就可以将应用程序交给测试了。如果集成人员根据规范来编写控制器,并且模型开发人员遵循API编写代码,那么一切都顺利进行。codeigniter的MVC应用程序布局
MVC构架有一个表现层的设计不破坏与控制器的约定,它就允许在任何时间修改和更新表现层的设计。这意味着可以很容易地编辑副本或者变化主题,而不用改变以用程序的操作方法或者整理大量的PHP代码。
此外,MVC构架还提供了一个有用的文件结构的分类方法。codeigniter(以下简称CI),是一个是一个符合MVC的构建的小型“轻量级”框架,在结构上类似被大家熟知的Rails,解决了像Zend Framework等中大型框架运行速度慢的缺点,适合开发大流量的网站。更重要的是CI能够 帮助你遵循 MVC 模式,使你更有效地组织代码,从而获得MVC结构的所有好处。拿以前的一个例子说明,文件的目录结构如下:
这些文件大体上可以分为三类:
1. 项目文件(红色标示部分),application 是存放项目文件的目录,在其中包括控制器(controllers文件夹中)、模型(models文件夹中)和视图(views文件夹中)。当然还包含其他一些文件,在图中没有标示出来,它们都是一些扩展和配置文件。
2. CI固有文件(蓝色标示部分),这是CI的一些底层驱动函数,提供了一些API,例如Active Record类(可以处理MySQL、MySQLi、 Postgre SQL、ODBC和MS SQL等数据库)和mvc动态加载类(使控制器、模型、视图之间协同合作)。
3. 外部文件(绿色标示部分),这些都是一些辅助文件,比如CSS、JavaScript、图片、上传文件保存目录等。当然还包含我们集成的phpwind论坛。
- codeigniter和mvc
- codeigniter和mvc续
- CodeIgniter 的MVC 入门
- CodeIgniter PHP MVC用户向导
- php mvc framework: codeigniter笔记
- [转] 用 CodeIgniter 开发动态 Web 站点 - 利用 MVC 框架和 CRUD 提高效率
- CodeIgniter框架学习——基础MVC
- CodeIgniter学习笔记 Item2--CI中的MVC
- codeigniter
- CodeIgniter
- codeigniter
- CodeIgniter
- CodeIgniter
- CodeIgniter
- CodeIgniter
- CodeIgniter
- CodeIgniter 和淘宝SDK 集成
- CodeIgniter设计和架构目标
- linux C 中使用正则表达式
- lucene 学习笔记 中文分词
- 28 真TM累
- 拷贝构造函数与赋值操作
- Lucene3.0的几种分词系统
- codeigniter和mvc
- 图书馆管理系统(二)—前期概要设计
- 什么函数不能声明为虚函数
- string大小写转换函数
- (转)vc++如何设置文件或目录的NTFS共享安全属性
- Linux OOPS 调试
- codeigniter和mvc续
- JSP解决乱码的问题
- 转:设置指定账户的网络共享文件夹(VC++)