我刚刚开始研究MVC而且我很新。我想将程序代码移植到它,但我正在努力(请没有人建议使用框架)。
我能理解它是如何运作的,但理解与做不同。在我的程序代码中,我有几个函数,如message()。例如,如果用户没有查看当前页面的权限,则会调用它们。
我的问题是将其添加到MVC中。到目前为止我已经添加了Twig,并且我已经设法在索引页面上呈现了一些Twig,但是之前使用诸如message之类的函数就像这样简单:
message('Message Text');
将其添加到控制器目录将允许将其作为网页进行访问,这是我不想要的。通过该模型,我不知道如何在不首先要求文件的情况下执行此操作。我可以使用一个函数,但我不想要全局变量,这也是我改变的部分原因。
如何正确放置常用功能?
修改
我正在使用的是此版本的修改版本:http://www.phpro.org/tutorials/Model-View-Controller-MVC.html
答案 0 :(得分:1)
我倾向于认为传统的MVC
是这样的:
控制器是我实现产品的业务逻辑 模型是表示数据的代码 视图代表了我的产品。
在这种范例下,what represents my product
是最终用户所看到的。
因此,如果它是一个UX组件,它就是视图的一部分。
通过这种方式,很容易弄清楚如何使用它:
use path/to/notifications.php
然后$notifications = new Notifications();
,其中notifications.php
是一个便于您参考的消息的类。extends Notifications
查看您的视图(甚至是基本视图!),以便您实例化的任何视图都可以立即访问您的通知类。require_once( 'path/to/notifications.php' );
,然后其中的类或功能可用。再一次,你可能不应该这样做底线是:
Notifications
。重要的是组织好,名字好,不要试图将太多的代码强加于一件事。new
它的实例,或者您可以扩展它以将其作为视图的父类。