사용자 도구

사이트 도구


tech:codeigniter:02.common:01.controller

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
tech:codeigniter:02.common:01.controller [2019/01/09 19:39]
tech:codeigniter:02.common:01.controller [2019/01/09 19:39]
endofsky 제거됨
줄 1: 줄 1:
 +====== Controller 개발 규칙 ======
 +===== 부모 Class =====
 +  * 부모 클래스는 KTK_AuthController를 사용한다.
 +  * 로그인을 하지 않았을 때에도 접속이 가능할 때에만 KTK_Controller 참조
 +  * CI_Controller 사용 금지
 +<code php>
 +  class Main extends KTK_AuthController {
 +    ...
 +  }
 +</​code>​
 +
 +===== 생성자 =====
 +  * 생성자는 특별한 사유가 없는 한 parent 호출 필수
 +  * 추가 모듈이 필요할 경우 parent 호출 후에 명시
 +
 +<code php>
 +    /**
 +      * 일반 생성자, 부모 클래스의 생성자를 우선 호출 후,
 +      * 해당 클래스의 생성자 역할을 진행하는것이 원칙!
 +      * 단, 특정 사유에 의해 부모 클래스의 생성자보다 우선적으로 호출해야 하는 라이브러리가 있는 경우 예외가 될 수 있다.
 +     ​**/ ​
 +    function __construct() {
 +        parent::​__construct();​
 +        // 추가 모듈 작성
 +        $this->​load...
 +    }
 +</​code>​
 +
 +===== 모델 호출 =====
 +  * 모델은 아래와 같은 방식으로 호출한다
 +  * 해당 controller에서 범용적으로 호출이 필요할 경우 로드를 생성자에 선언하여 사용 가능하다.
 +
 +==== Method에서 선언 및 호출 ​ ====
 +
 +<code php>
 +  // 모델 선언
 +  $this->​load->​model('​prototype_model'​);​
 +  ​
 +  // 모델의 특정 메소드를 호출하여 data배열에 저장
 +  $data['​someThing'​] = $this->​prototype_model->​getSomeThing();​
 +</​code>​
 +
 +==== 생성자에서 선언, Method에서 호출 ​ ====
 +
 +<code php>
 +    /**
 +      * 모델을 선언하는 생성자
 +      * 이런 식으로 선언 시 다른 method에서 중복 선언 할 필요가 없다
 +     ​**/ ​
 +    function __construct() {
 +        parent::​__construct();​
 +        // 모델 선언
 +        $this->​load->​model('​prototype_model'​);​
 +    }
 +
 +    /**
 +      * 생성자에서 선언한 모델을 호출하는 method
 +     ​**/ ​
 +    public function something() {
 +        // 모델의 특정 메소드를 호출하여 data배열에 저장
 +        $data['​someThing'​] = $this->​prototype_model->​getSomeThing();​
 +    }
 +</​code>​
 +
 +===== 뷰(View) 호출 =====
 +  * 뷰는 아래와 같은 공통모듈을 통해 호출한다
 +
 +==== 일반 페이지의 경우 ====
 +  * 상단, 왼쪽 메뉴 / 하단 푸터 등이 들어가는 일반 페이지의 경우에는 pageView 메소드를 사용한다
 +  * //​KTK_AuthController 에서만 사용 가능//
 +
 +<code php>
 +    // 뷰 호출 : 일반 페이지일 경우
 +    $this->​pageView('/​prototype/​main_v',​ $data);
 +</​code>​
 +
 +==== 독립 페이지의 경우 ====
 +  * 팝업 페이지 등의 용도로 별도로 사용되는 페이지의 경우 simpleView 메소드를 사용한다
 +  * //​KTK_AuthController,​ KTK_Controller 모두 사용 가능//
 +
 +<code php>
 +    // 뷰 호출 : 공통 header/​footer 등 제외
 +    $this->​simpleView('/​prototype/​main_v',​ $data);
 +</​code>​
 +
 +==== 페이지 없이 결과만 출력하는 경우 ====
 +  * Ajax 통신과 같이 별도 뷰 페이지 없이 텍스트 혹은 json방식의 결과를 출력해야 하는 경우
 +  * //​KTK_AuthController,​ KTK_Controller 모두 사용 가능//
 +
 +=== json 포맷으로 노출하는 경우 ===
 +  * //​KTK_AuthController,​ KTK_Controller 모두 사용 가능//
 +<code php>
 +    $dataArr = $this->​common_model->​doSimpleQueryArr(...);​ // 결과 수신
 +    $this->​jsonView($dataArr);​ // 화면 출력
 +</​code>​
 +
 +=== 단순 텍스트만 노출하는 경우 ===
 +  * //​KTK_AuthController,​ KTK_Controller 모두 사용 가능//
 +<code php>
 +    $isSuccess = "​true";​ // 텍스트 값 할당
 +    $this->​stringView($isSuccess);​ // 화면 출력
 +</​code>​
 +
 +
 +===== 간단 쿼리 호출 (commonModel) =====
 +단순히 쿼리만 조회하여 결과값을 화면에 파싱하는 경우 Model 에 관련 method를 만들 경우 필요 없는 코드만 발생할 수 있다. \\
 +그래서 이번 프로젝트에서는 commonModel을 통해 별도 business logic이 없는 경우 굳이 model 을 건드리지 않아도 되도록 쿼리 호출 공통함수를 제공한다. \\
 +단, 이를 위해서는 쿼리는 queryparser에서 사용할 수 있도록 xml로 제작되어 있어야 한다. \\
 +  * [[03.프로그램_모듈:​01.공통모듈:​03.models:​common_model.php|간단 쿼리 호출 (commonModel) 참조]]
  
tech/codeigniter/02.common/01.controller.txt · 마지막으로 수정됨: 2019/01/09 19:39 (바깥 편집)