将控制器父类放在CakePHP中的位置?

par*_*oja 4 cakephp

我有两个共享大部分代码的控制器(但必须是,不同的控制器).显而易见的解决方案(对我来说,至少)是创建一个类,并使两个控制器继承它.事情是......在哪里放?现在我在app_controller.php中有它,但它有点混乱.

tys*_*ock 9

在蛋糕中,组件用于存储可由多个控制器使用的逻辑.该目录是/ app/controllers/components.例如,如果您有一些可共享的实用程序逻辑,那么您将拥有一个名为UtilComponent的对象和一个名为UtilComponent.php的/ app/controlers/components中的文件.

<?php
class UtilComponent extends Object {
    function yourMethod($param) {
        // logic here.......

        return $param;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

然后,在您的控制器类中,您将添加:

var $components = array('Util');
Run Code Online (Sandbox Code Playgroud)

然后你调用这样的方法:

$this->Util->yourMethod($yourparam);
Run Code Online (Sandbox Code Playgroud)

更多信息:

文档