Php MVC-我可以在类控制器中调用多个(或多个)控制器吗?
对于用php编写的项目,我可以在类控制器中调用多个(或多个)控制器吗?举例 询问:我需要从另一个控制器调用操作。。。如果我真的喜欢上面这张照片,我就要出局了 谢谢,Php MVC-我可以在类控制器中调用多个(或多个)控制器吗?,php,model-view-controller,controller,Php,Model View Controller,Controller,对于用php编写的项目,我可以在类控制器中调用多个(或多个)控制器吗?举例 询问:我需要从另一个控制器调用操作。。。如果我真的喜欢上面这张照片,我就要出局了 谢谢, Vinicius。然后您需要修改框架,找到控制器所在的位置,并在那个里添加第二个控制器 您使用的是什么框架?您可以按照自己的意愿进行操作。如果你不想,你不必使用MVC。然而,在MVC中,一次应该只有一个控制器处于活动状态。您可能需要多个视图或模型,而不是另一个控制器。加载(比如)站点菜单和页脚的页眉和页脚视图完全没有问题。out?任
Vinicius。然后您需要修改框架,找到控制器所在的位置,并在那个里添加第二个控制器
您使用的是什么框架?您可以按照自己的意愿进行操作。如果你不想,你不必使用MVC。然而,在MVC中,一次应该只有一个控制器处于活动状态。您可能需要多个视图或模型,而不是另一个控制器。加载(比如)站点菜单和页脚的页眉和页脚视图完全没有问题。out?任何人。。。回到现实 是的,一个控制器可以调用另一个控制器的操作。例如,在cakePHP中,通过
如果您正在使用自己的框架,那么如何实现它的细节将非常特定于您的框架。我相信,无论您使用哪个框架,您都可以随心所欲。如果出于任何原因无法以本机方式完成,那么可以根据需要扩展框架 话虽如此,我个人不喜欢一个控制器调用另一个控制器的想法。如果仅仅从理论的角度来看,它似乎在某种程度上打破了MVC范式。我可以做的是构建一个包含所需功能的库类,然后让两个控制器将该类实例化为成员并调用所需的函数 例如,使用CodeIgniter: 库/MyLib.php:
class MyLib
{
public function MyFunc()
{ /* do whatever */ }
}
controllers/ControllerA.php:
class ControllerA extends Controller
{
public function index()
{
$this->load->library('MyLib');
$this->mylib->MyFunc();
}
}
控制器/控制器B:
class ControllerB extends Controller
{
public function index()
{
$this->load->library('MyLib');
$this->mylib->MyFunc();
}
}
如果您正在构建另一个控制器,那么您会觉得需要访问前一个控制器的功能才能访问其功能(因为它与特定/所需的模型一起工作),那么您为后者开发的模型可能需要重构。简单地说,您的目标模型可能做得太多了。别吵了
您试图通过调用已经开发的控制器的方法来避免重复自己(DRY),但这样做会在两个控制器之间创建紧密耦合!如果借用的控制器中发生更改,将对借用控制器产生影响。不太好,琼斯博士。我没有使用任何框架。我用MVC方法创建了我自己的项目。谢谢你的回复。我很可能会将函数requestAction复制到CakePHP中,用于我公司的内部网项目。。。我会考虑的。谢谢,伙计,没问题。很乐意帮忙。如果你是出于教育目的,那么创建自己的框架是一个很好的学习方式。然而,如果是针对生产环境,有很多人会建议只使用许多优秀的预构建框架(cakePHP、Zend、symfony)中的一个,因为它们是社区构建、支持、测试、维护和功能丰富的。是的,在我自己的intranet项目中,它要求控制许多模型和许多视图。但我刚才观察到他需要另一个控制器来处理你想要的信息。。。谢谢
class ControllerB extends Controller
{
public function index()
{
$this->load->library('MyLib');
$this->mylib->MyFunc();
}
}