【发布时间】:2010-12-25 07:00:20
【问题描述】:
大家好!
在 PHP 上下文中寻找有关 MVC 的帮助。目前,我正在构建一个小型、轻量级的 MVC 框架,以帮助加快工作中的应用程序开发。消除内联代码是一个漫长而艰难的分离过程——至少在众多项目迫在眉睫的情况下,并且一直存在使用它的诱惑。
我了解 MVC 的大部分基本要求,并且我已经开始将一些现有的单例模式的类移植到我的新框架中作为实用程序(这些主要是执行站点服务的基本“处理程序” -用于文件上传、授权、包装 PDO 数据库查询、错误打印等的类)
在阅读了大量文档后,我似乎无法理解实例化视图的最佳方法。在我旧的、低效的设计中,我会关闭 $_GET 变量以从主视图中切换输出。只是出于直觉,这似乎是完成工作的一种极其糟糕的方式。
我正在研究 CodeIgniter,似乎在该框架内有用于加载视图的预定义函数。这种应用程序设计的最佳方法是什么?它会是一个基于类的“链接工厂”,它使用相同的变量来获取内容、选择正确的视图文件并将其放置在页面流中吗?此外,如何在不使用开关的情况下将新视图包含在根索引中的页眉和页脚之间?这是唯一让我感到困惑的事情——我真的希望我的措辞足够清楚。
一如既往地感谢大家!
【问题讨论】:
-
如果您不是将其用于业余项目而是用于工作,为什么还要自己构建 MVC 框架?那里有几个很棒的 PHP MVC 框架,它们经过深思熟虑,非常成熟且有据可查。为什么要从头开始重新发明轮子?
-
一个很好的观点。主要是我有兴趣这样做是为了更好地理解方法本身并扩展我自己在编写代码方面的多功能性。我也有兴趣自己扩展程序以获得它可能需要的任何功能,以使其尽可能轻量级。但主要是我的兴趣是学术性的。我有一个非常大的项目,有一段时间我第一次可以单独专注,我想尽可能从头开始构建它。
-
如果你没有什么经验,不要在做“大型工作项目”时开始尝试。使用现有的成熟解决方案。如前所述,Codeigniter 是一个不错的选择。
-
Codeigniter 是一个非常好的选择。
-
我被 CodeIgniter 所吸引,因为它似乎是最透明的框架,面向熟悉 php 核心功能的开发人员。
标签: php model-view-controller oop