php – MVC应该如何在CodeIgniter中工作

前端之家收集整理的这篇文章主要介绍了php – MVC应该如何在CodeIgniter中工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
作为一个大多数自学成才的程序员,我在设计模式等方面比较晚.我正在使用CodeIgniter编写一个劳动管理webapp.

我在学校做了一些MVC ASP.NET / C#和Java,而且这个惯例是你的模型主要由代表实际对象的类组成,而且还抽象了所有的数据库连接等等,这是很标准的MVC东西从我收集的

我想我是正确的说,CI抽象数据库连接完全不见(除非你去寻找),这是适合的课程,您可以创建的模型可以抽象“通用”CRUD方法一点点创建一些对特定模型更有用的方法.

我有一个问题,因为它与我用于MVC的不同之处在于,每当你说…从数据库返回一行时,约定是把它放在一个关联数组或标准对象其属性表示来自该行的数据.

在ASP中,您可以使用实际的类来存储此信息.例如,您将有一个House类,数据将被存储为属性(例如卧室,浴室,地址),这些方法将代表您可以使用数据的有用功能(例如,printInfo()可能打印出来(“$address has $卧室卧室和$浴室浴室!“)).

我得到的印象 – 只是从互联网上看到的代码 – 这不是标准的做事方式.你应该只使用数组或通用对象,并且说… do $this-> house_model-> print_info($houSEObject)而不是$houSEObject-> print_info();?

谢谢.

尽管有相反的说法,Codeigniter根本不使用MVC(实际上很少有Web框架可以实现),它实际上使用了PAC(Presentation-abstraction-control)架构.实质上,在PAC中,演示层由演示者(CodeIgniter调用控制器)馈送数据,而在MVC中,View从模型中获得自己的数据.由于MVC的这种错误标注,存在混淆.

因此,CodeIgniter(和大多数其他流行的Web框架)不鼓励正确的模型,而只是使用非常基本的数据访问它的位置.这是由于“胖子控制器”引起的一大堆问题.与域相关的代码都不可重用.

进一步阅读:

> MVC vs. PAC
> The M in MVC: Why Models are Misunderstood and Unappreciated
> Model-View-Confusion part 1: The View gets its own data from the Model
> The Fat Controller

这是PHP社区中一个广泛的混乱点(MVC vs. PAC文章将问题定义为源自PHP社区的问题,这是2006年编写的,没有任何改变,如果有更糟糕的是因为有更多的框架和教程教导MVC的错误定义),以及为什么人们看到来自Web开发之外的“MVC”PHP代码可以理解地变得困惑. PHP中的大多数“MVC”实现都不是MVC.你是正确的思维模式应该是正确的结构,它的CodeIgniter是错误的自己标记为MVC.

猜你在找的PHP相关文章