【问题标题】:Question about building own (PHP) MVC framework关于构建自己的 (PHP) MVC 框架的问题
【发布时间】:2011-04-14 10:51:35
【问题描述】:

这个时候我想构建一个MVC框架。一切都很好,但现在我在控制器和视图之间遇到了问题。希望你能帮助我。

我的 MVC 与 MVC 没有太大不同,它使用相同的概念,但从技术上讲我遇到了一个问题。问题是:视图加载后如何从控制器中获取数据?

请记住,在不使用全局变量或类似参数的视图中,每个参数(如 DB 回复等)都必须传递给视图,并且视图直接使用它(例如...例如 CodeIgniter) .

我不知道该怎么说更好,如果您不理解我,我很抱歉。但希望你能!

【问题讨论】:

    标签: php model-view-controller frameworks codeigniter controller


    【解决方案1】:

    您可能希望将变量列表绑定到视图的命名空间。

    您可以细读Kohana's View class 以获得一些灵感或想法。

    【讨论】:

      【解决方案2】:

      MVC 框架背后的要点是,视图不需要了解控制器及其实现。 View 应该只有一个变量列表,它需要存在才能正确呈现,而 Controller 实现担心确保这些变量存在于 View 中。

      请问您为什么要设计自己的 MVC 框架?那里有很多很棒的解决方案,我个人建议你试试 CakePHP,我已经用它来发布几个商业产品,我发誓!

      【讨论】:

      • “控制器实现担心确保视图中存在这些变量”——听起来这会使工作加倍:如果更新视图,还必须更新控制器。如果这不需要更新模型以及使用模型(严格读取功能)将更有意义 IMO。
      【解决方案3】:

      您必须向视图传递对控制器对象的引用,或者视图必须在相关控制器类上使用静态方法。然后视图调用控制器上的方法来显示结果。视图还通过控制器对象或类向控制器提交表单数据。

      【讨论】:

      • 我认为视图不应该知道控制器,真的。它应该简单地期望(并且显然检查)它需要的变量的存在。它不必关心“谁”使用它...如果变量存在,它会显示它们。
      【解决方案4】:

      如果您的 View 实现使用模板引擎,通常有一种机制可以将任意键/值数据添加到模板的范围。如果您还没有进步到这一点,那么可能值得考虑类似的策略。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-23
        • 1970-01-01
        相关资源
        最近更新 更多