对于用PHP编写的项目,我可以在班级控制器中调用多个(或多个)控制器吗?示例在http://img192.imageshack.us/img192/7538/mvc03.gifMVC - 我可以在班级控制器中拨打多个(或多个)控制器吗?
询问:我需要从另一个控制器调用动作 ......如果我喜欢上面的图片,我是不是道德?
谢谢, Vinicius。
对于用PHP编写的项目,我可以在班级控制器中调用多个(或多个)控制器吗?示例在http://img192.imageshack.us/img192/7538/mvc03.gifMVC - 我可以在班级控制器中拨打多个(或多个)控制器吗?
询问:我需要从另一个控制器调用动作 ......如果我喜欢上面的图片,我是不是道德?
谢谢, Vinicius。
out-ethics?任何......回到现实。
是的,控制器可以调用另一个控制器的动作。例如,在CakePHP中,这个功能是通过requestAction
// pass uri to request action and receive vars back
$ot3 = $this->requestAction('/stories/xenu');
如果你滚你自己提供,如何实现它的细节将是非常具体到你的框架。
然后你需要修改框架,找到控制器被放置的位置,并在那里添加你的第二个控制器。
你正在使用什么框架?
我没有使用任何框架。我使用MVC方法创建了自己的项目。 – Vegetus 2011-01-10 20:05:13
你可以用任何你想做的方式。如果你不想使用MVC,你不必使用MVC。但是,在MVC中,您一次只能有一个控制器处于活动状态。您可能需要多个视图或模型,而不是另一个控制器。在加载网站的菜单和页脚的页眉和页脚视图时,没有任何错误。
是的,在我自己的Intranet项目中,需要控制许多模型和许多视图。但刚才我观察到他需要另一个控制器来处理一些你想要的信息......谢谢! – Vegetus 2011-01-10 20:21:29
我相信你可以用你使用的任何框架来做你想做的事情。如果无论出于何种原因都无法在本地执行此操作,则可以根据需要扩展您的框架。
话虽如此,我个人不喜欢控制器调用另一个控制器的想法。如果仅仅从理论角度来看,它似乎有点打破了MVC范式。我可能会做的是构建一个库类,它包含所需的功能,然后让两个控制器将该类实例化为成员并调用所需的函数。
例如,使用笨:
库/ MyLib.php:
class MyLib
{
public function MyFunc()
{ /* do whatever */ }
}
控制器/ ControllerA.php:
class ControllerA extends Controller
{
public function index()
{
$this->load->library('MyLib');
$this->mylib->MyFunc();
}
}
控制器/ ControllerB:
class ControllerB extends Controller
{
public function index()
{
$this->load->library('MyLib');
$this->mylib->MyFunc();
}
}
感谢您的回复。我很可能会将CakePHP中的函数requestAction复制到我自己的公司Intranet项目中...我会考虑的。谢啦。 – Vegetus 2011-01-10 20:15:58