2011-08-29 29 views
1

我正在编写一个PHP MVC框架。现在,当我开始编码时,我发现我迷失在实现应该去的地方:Index.php router.php registry et al。 我迷失了我应该在哪里加载基本控制器和Model等。是否有任何图表显示适用于PHP的MVC流?不是一般的MVC模式,而是基于PHP的? 我已经阅读了很多教程,并说,他们不使用相同的技术!事件流:PHP MVC模式

+0

试图检查下面的链接有什么,我需要: http://stackoverflow.com/questions/3153347/need-guidance-regarding-the-correct-flow-of-my-php -mvc-framework –

+0

[Form following function](http://en.wikipedia.org/wiki/Form_follows_function)。除非您对各种组件有特定需求,否则实现诸如MVC之类的模式几乎没有什么好处。一旦需求退出,模式将自我定义([with](http://oreilly.com/php/archive/mvc-intro.html)[a](http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1 /)[小](http://php-html.net/tutorials/model-view-controller-in-php/)[help] (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller))。 –

回答

6

警告:这个答案是过时的,并且根据我大约6年前就有了“理解”。我会尽量在可预见的将来更新。

有没有单一的“正确的方式”打赌有地狱很多错误的。

我只能解释我对主观的看法。这里是为了:

  • 的index.php
    • 套环境常数
    • 负载bootstrap.php中
  • bootstrap.php中(存在外DOCUMENT_ROOT)
    • 登记自动加载器
    • 加载router配置
    • 路由器从路径集的输入数据
    • 创建model factory
    • 创建controller,通过数据从路由器确定
      • 需要在构造
    • 创建view模型工厂内,由控制器确定的(V和C有1:1的关系)
    • 在控制器上执行动作,d从路由器的数据etermined
      • 使用模型工厂创建新models
      • 结合模型,查看模型
      • 变化状态
      • 变化的视图状态
    • 视图渲染页面
      • 请求绑定模型的数据
      • 确定哪个templates到用途

这或多或少如下所谓的模型2或Web MVC结构。

这些模型负责业务逻辑,查看与呈现逻辑的交易和控制器将两者连接在一起并根据传入参数改变状态。

enter image description here

+0

我在帖子中找到了这张图。我认为这是好的。让我消化你的解释,因为他们似乎很有道理 http://stackoverflow.com/questions/2180106/what-is-the-mvc-program-flow –

+0

什么是模型工厂和自动加载器? –

+0

@Stefano Autoloader会是一个基于[spl_autoload_register()](http://php.net/manual/en/function.spl-autoload-register.php)的类(或者甚至可能是单一函数)。这是PHP中用于简化类的工作的机制。至于模特儿工厂,您需要观看视频[1](http://www.youtube.com/watch?v=RlfLCWKxHJ0)和[2](http://www.youtube.com/watch?v=- FRm3VPhseI)了解这一点。基本上它是一个为您创建不同模型的类(如果您需要,可以使用数据库访问或缓存)。 –