PHP MVC框架设计

标签 php oop frameworks

我目前遇到了一个我自己无法真正解决的问题:

我已经开始编写一个“小型”框架 (browsergame-framework),它在某种程度上遵循 MVC 模式。

现在我有了索引、 Bootstrap 、数据库适配器、调度程序、包装程序,但我真的不知道“如何”链接它们。 我对它们的方法等进行了编码,但我不知道如何将它们设计成像引擎一样工作。

下一个问题是我的 Controller ,我不知道如何“链接”它们以便它们可以轻松访问整个框架.... 是的,这令人困惑,这就是为什么我需要你的帮助,一些“框架程序如何流动”的通用方案应该会非常好。

谢谢。

最佳答案

您是本末倒置。框架不是写出来的,而是成长起来的。见Evolving Frameworks来自四人帮之一的拉尔夫约翰逊。

编辑

I do not understand, what the author means with "application", does this mean raw-coded-project or does this mean project with basic functionality which will be taken to the later framework.

两者都可以,这取决于您在编程方面的专业知识和问题领域。 重要的是目标(一个有用的框架),这个过程应该只是支持你 尽可能最好地实现它。您可能会开始缓慢,在同一个问题域中开发三个应用程序,而它们之间没有任何代码共享, 只需查看代码库,看看它们有什么共同点,并可能重构这三个已完成的应用程序以聚合代码,并提取共同部分。 在第二个和第三个应用程序的开发过程中,这不会给你任何提升, 但它也不会阻碍他们与以前的并发重构的发展。

假设您想要一个框架来简化基于浏览器、回合制的编写 策略。

你的第一个回合是编写这样一个游戏,而不考虑重用 代码在这个单一游戏之外,但要注意代码重用 within 它:无情地重构,应用所有编程原则:OCP , SRP , DRY等。尤其是干燥。代码重用(Don't Repeat Yourself)是一种 编程的基本原理,以及通往 框架。您最终会得到一个类库和/或函数库 在整个游戏中使用。

第二轮是写,坚持上面提到的原则, 另一个基于浏览器的回合制策略,使用第一个的代码 游戏。你会发现其中很多内容都是针对第一款游戏的。采用 无需修改即可放入第二个的部分,重构它们 有用但不太适合所以它们很有用并且确实适合 在这两款游戏中。

对第三个游戏重复该过程。

三是让您有希望获得代码的最小数字 这是真正可跨问题域重用的(想想三角测量), 不能保证它会发生。 OTOH,推导出一个有用的框架 如果没有实际应用程序的支持,肯定会以 一堆没用的废话。

约翰逊:

Developing reusable frameworks cannot occur by simply setting down and thinking about the problem domain. No one has the insight to come up with the proper abstractions.

仔细阅读“三个示例”部分。

关于PHP MVC框架设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1853556/

相关文章:

matlab - 如何在 Matlab 中检查一个类是否有特定的基类

javascript - 使用递归检索属性 'x' 内所有对象的属性 'y'

php - 哪些 PHP 框架适合纯 Web 服务应用程序?

php - Codeigniter 模型未保存在数据库中

php - UTF-8贯穿始终

Python:回调问题

frameworks - Web 开发框架 : Zend Framework vs Ruby on Rails vs ASP. NET MVC

c++ - 如何在 C++ 项目的 Cmake 文件中添加 Mac OS 框架

php - 正确的 SQL 语法(PHP 和 MySQL 组合)

php - MySQL、PHP、登录信息正确但 "Unable to connect to the database"错误