Model view controller symfony-从另一个操作调用一个操作
我在两个不同的模块中有两个不同的操作,我需要在另一个模块中执行其中一个 考虑以下行动:Model view controller symfony-从另一个操作调用一个操作,model-view-controller,symfony1,action,Model View Controller,Symfony1,Action,我在两个不同的模块中有两个不同的操作,我需要在另一个模块中执行其中一个 考虑以下行动: //first module class module1Actions extends sfActions { protected function function1Form(sfWebRequest $request, sfForm $form) { //i need to call a function from module2 in here to do sth but i
//first module
class module1Actions extends sfActions {
protected function function1Form(sfWebRequest $request, sfForm $form) {
//i need to call a function from module2 in here to do sth but i don't need any view to be returned.
//but i need some variables to be returned by the second action
}
}
//second module
class module2Actions extends sfActions {
protected function executeSth(sfWebRequest $request, sfForm $form) {
//Do Something in here and return some values.
}
}
正如我所说,我需要执行一个操作并从中获取一些值,但我不知道如何调用它。它在不同的模块中。我可以访问它吗?怎样?我如何得到这些值
谢谢。根据您获取这些值的方式,以下是最佳路径:
lib
文件夹中创建一个实用程序类,并将其作为函数添加到该文件夹中,然后从两个操作中调用它这样可以防止代码重复,并且仍然不会打破MVC关注点的分离。我会在Maerlyn的答案中添加第三种方法。在一些有限的情况下,它可以防止代码重复,但也不会因为将错误的代码移到模型层而破坏正确的MVC设计
- 将要发送/和/或返回的值存储在myUser类中,然后使用
调用运行相关操作,而不会导致浏览器发出另一个请求$this->forward()
请注意,$this->forward()会立即停止您从中调用它的操作,并且将显示转发操作的模板。您不能这样做。这将打破MVC模式。您能告诉med如何调用和执行lib文件吗?