CakePHP에 컨트롤러 상위 클래스를 어디에 두어야합니까?

StackOverflow https://stackoverflow.com/questions/134470

  •  02-07-2019
  •  | 
  •  

문제

대부분의 코드를 공유하는 두 개의 컨트롤러가 있습니다 (그럼에도 불구하고 다른 컨트롤러이어야합니다). 명백한 해결책은 (적어도 나에게) 클래스를 만들고 두 컨트롤러가 그것에서 상속하는 것입니다. 문제는 ... 어디에 두어야합니까? 이제 app_controller.php에 가지고 있지만 거기에 지저분합니다.

도움이 되었습니까?

해결책

케이크에서 구성 요소는 여러 컨트롤러에서 사용할 수있는 논리를 저장하는 데 사용됩니다. 디렉토리는/앱/컨트롤러/구성 요소입니다. 예를 들어, 공유 가능한 유틸리티 로직이있는 경우 UtilComponent라는 객체와 utilcomponent.php라는/앱/컨트롤/구성 요소의 파일이 있습니다.

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

        return $param;
    }
}
?>

그런 다음 컨트롤러 클래스에서 다음을 추가합니다.

var $components = array('Util');

그런 다음 다음과 같은 방법을 호출합니다.

$this->Util->yourMethod($yourparam);

더 많은 정보:

선적 서류 비치

다른 팁

BTW, "분리 된 컨트롤러"의 이유가 필요한 URL 인 경우. 라우팅을 사용할 수 있습니다.

Router::connect('/posts', array('controller' => 'posts', 'action' => 'index'));
Router::connect('/comments', array('controller' => 'posts', 'action' => 'list_comments'));
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top