Onde colocar o controlador de classe pai em CakePHP?
-
02-07-2019 - |
Pergunta
Eu tenho dois controladores que compartilham a maior parte de seu código (mas deve ser, no entanto, diferentes controladores). A solução óbvia (para mim, pelo menos) é criar uma classe, e fazer os dois controladores de herdar a partir dele. A coisa é ... onde colocá-lo? Agora eu tê-lo em app_controller.php, mas é meio confuso lá.
Solução
No bolo, os componentes são usados ??para lógica de loja que pode ser usado por vários controladores. O diretório é / app / controllers / componentes. Por exemplo, se você tinha alguma lógica de utilidade compartilháveis, você teria um objeto chamado UtilComponent e um arquivo em / app / Controladores / componentes chamado UtilComponent.php.
<?php
class UtilComponent extends Object {
function yourMethod($param) {
// logic here.......
return $param;
}
}
?>
Então, em suas classes do controlador, você deve adicionar:
var $components = array('Util');
Em seguida, você chamar os métodos como:
$this->Util->yourMethod($yourparam);
Mais informações:
Outras dicas
Btw, se a razão para "eles devem ser controladores separados" é o URLs que você necessita. Lembre-se que você pode usar o encaminhamento:
Router::connect('/posts', array('controller' => 'posts', 'action' => 'index'));
Router::connect('/comments', array('controller' => 'posts', 'action' => 'list_comments'));