【发布时间】:2010-05-07 12:19:19
【问题描述】:
关于控制器的问题。 控制器可以在动作中调用它自己的类方法吗?
编辑: 哦对不起。我的意思是我不想重复自己。 :)
【问题讨论】:
标签: php model-view-controller controller dry
关于控制器的问题。 控制器可以在动作中调用它自己的类方法吗?
编辑: 哦对不起。我的意思是我不想重复自己。 :)
【问题讨论】:
标签: php model-view-controller controller dry
除非您使用一些晦涩难懂的框架以某种方式阻止这种情况,否则您应该能够从类/实例中调用方法,而不管该类/实例是控制器还是其他东西。
如果您发现自己编写的代码需要跨多个控制器重用,您可以考虑编写一个 BaseController 并将常用功能移到这个控制器中,或者 - 更好的是 - 将常用功能分离到帮助类中,然后您可以实例化并调用它一经请求。基本上,如果您需要 all 控制器中的某些内容,请将其移至 BaseController。如果您在 一些 控制器中需要它,请将其设为助手。如果您只需要在一个特定的控制器中使用它,请保留它。
【讨论】:
为什么不呢?
这完全取决于你,但我真的不明白为什么要避免 DRY (LOL)。 MVC 的意义在于分离了控制器/模型/视图,仅此而已:)
编辑: 仍然是的,控制器可以在动作中调用它自己的方法。好的做法是给动作方法命名,如 action_something 或 something_action,并拥有一个稍后扩展的“基本”控制器。喜欢;
Controller
Controller_Application extends Controller
Controller_Layout extends Controller_Application
第一个将是某种“抽象”(面向框架),而其他则负责应用程序逻辑。所以以后你会有...
Controller_Forum extends Controller_Layout
Controller_News extends Controller_Layout
Controller_Ajax extends Controller_Application
取决于你想使用某些控制器的目的。
这完全取决于你;你可以把你自己的方法放在你想要的任何地方,然后从你想要的任何地方调用它们:)
【讨论】: