我正在尝试在PHP中创建一个小应用程序来管理用户请求和注册。我没有使用任何MVC框架,但我想让它遵循MVC,因为我想扩展它并重用一些组件的代码。
如果Controller不管理View,如何在发送之前访问邮件的最终演示文稿(内容+格式)?
我在Web应用程序中阅读了一些关于MVC的文章,我打算满足以下规范:
模型以最简单的形式存储视图要访问并由控制器写入的数据。该模型是系统所有部分中最复杂的模型,将包含特定于应用程序的所有逻辑,以及存储与现实世界概念(例如“用户”或“订单”)相关的域实体的所有逻辑。它是应用程序的一部分,它从任何来源获取数据并对其进行处理。该模型还处理所有数据访问和存储。它不知道任何可能使用它的控制器或视图。
视图包含所有显示逻辑。在PHP中,它将是生成HTML的应用程序的一部分。它可以直接访问模型,并可以查询模型以获取其数据。 View可以为其控制器创建回调(例如,单击视图中的按钮将触发控制器中的操作)。在MVC中,视图查询模型以请求其自己的数据。
控制器获取用户输入并在需要时更新模型。在没有用户交互的情况下(例如,显示静态数据集并且每次都相同),不需要任何控制器。请务必注意,控制器不是视图和模型之间的中介或网关。视图从其模型中获取自己的数据。控制器访问模型但不包含任何显示逻辑本身。所有控制器都响应用户输入。 重要的是要注意控制器不负责实例化模型或视图。每个控制器都链接到一个视图实例和一个模型实例。
上述规范可以使用following diagram
进行总结所以我假设Controller是要发送电子邮件的那个,而View就是准备电子邮件演示文稿的那个。
上一个图表的更详细版本adapted to the mailing case( 请注意带有询问的不连续箭头,因为这是我的问题所在 ) :
是否仍然保留以下一般程序流程?:
//initiate the triad
$model = new Model();
$controller = new Controller($model);
$view = new View($model);
$controller->{$UserRequest};
echo $view->output();
我找不到任何解决方法。有没有办法继续我找不到?
谢谢你们的帮助......
答案 0 :(得分:0)
邮件通常被视为"帮助类"的一部分。 实际上,邮件应该通过控制器类发送,但是在帮助器中定义以便更清楚。 例如,您可以使用phpMailer(在MVC中非常容易使用)。