在CakePHP中将控制器父类放在哪里?
时间:2020-03-06 14:43:57 来源:igfitidea点击:
我有两个共享大多数代码的控制器(但是必须是不同的控制器)。一个明显的解决方案(至少对我而言)是创建一个类,并使两个控制器从该类继承。事情是...放在哪里?现在我在app_controller.php中有它,但是那里有点混乱。
解决方案
在蛋糕中,组件用于存储可由多个控制器使用的逻辑。该目录是/ app / controllers / components。例如,如果我们有一些可共享的实用程序逻辑,则将有一个名为UtilComponent的对象,以及一个在/ app / controlers / components中的文件,名为UtilComponent.php。
<?php class UtilComponent extends Object { function yourMethod($param) { // logic here....... return $param; } } ?>
然后,在控制器类中,我们将添加:
var $components = array('Util');
然后调用如下方法:
$this->Util->yourMethod($yourparam);
更多信息:
文献资料
顺便说一句,如果"它们必须是单独的控制器"的原因是我们需要的URL。请记住,我们可以使用路由:
Router::connect('/posts', array('controller' => 'posts', 'action' => 'index')); Router::connect('/comments', array('controller' => 'posts', 'action' => 'list_comments'));