Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何与使用MVC的不同模块进行通信_Php_Oop_Model View Controller_Module - Fatal编程技术网

Php 如何与使用MVC的不同模块进行通信

Php 如何与使用MVC的不同模块进行通信,php,oop,model-view-controller,module,Php,Oop,Model View Controller,Module,为了实现MVC,我尝试使用以下结构 每个模块都有一个控制器、一个视图和一个模型 我不知道如何创建不同模块之间的通信。例如,如果我在Module1模型中运行一个函数,并且我需要得到Module2模型的一些东西(为了符合MVC),我该怎么做,或者哪种方法是正确的? 我的想法是这样做的:模块1的模型->模块1的控制器->模块2的控制器->模块2的模型->模块2的控制器->模块1的控制器->模块1的模型视图控制器不仅仅是MVC,而且正如Dai提到的,您还需要包含共享逻辑的库部分 或者,如果一个控制器派

为了实现MVC,我尝试使用以下结构

每个模块都有一个控制器、一个视图和一个模型

我不知道如何创建不同模块之间的通信。例如,如果我在
Module1
模型中运行一个函数,并且我需要得到
Module2
模型的一些东西(为了符合MVC),我该怎么做,或者哪种方法是正确的?


我的想法是这样做的:模块1的模型->模块1的控制器->模块2的控制器->模块2的模型->模块2的控制器->模块1的控制器->模块1的模型视图控制器不仅仅是MVC,而且正如Dai提到的,您还需要包含共享逻辑的库部分

或者,如果一个控制器派生自另一个控制器,并且您正在使用面向对象编程,那么您可能只想扩展其中一个控制器。例如,有一个“安全页面” 控制器用于登录用户,具有“userPanel”和“myProfile”等控制器 扩展securePage控制器


或者,两者都使用。为您希望在任何地方使用的函数创建公共库,然后使用类继承来提供专门的函数。

控制器不应该彼此对话,而是将共享逻辑移动到共享库中。“MVC”不代表“我的代码”。这是一种体系结构设计模式,而不是文件的命名约定。您可以将模块视为事件。这是实现你需要的最简单的方法。看看这个:-1:短语“模型视图控制器不仅仅是MVC”和“包含共享逻辑的库部分”没有任何意义。控制器的责任是改变状态,而不是执行访问控制。两者合在一起确实有意义。我是说,MVC模型可以包括库之类的东西,并且绝对不限于这3种类型的组件。我对他的问题的理解使我相信他认为这个模型是绝对严格的,不允许使用图书馆。根据控制器的职责,它们是MVC的逻辑部分;访问控制不属于模型,视图也不是正确的位置。有一个家长控制器,自动为他们的孩子验证挑战是有意义的;控制器中的访问控制@user870018听起来像是在谈论
模型视图演示者
。从演示者调用访问控制。控制器也被称为
编辑器
(参见原始MVC论文)-它们应该只关心请求变量,例如
$\u POST
$\u GET
。。。