FuelPHP-컨트롤러

ControllersFuelPHP 애플리케이션에 들어오는 각 요청을 처리 할 책임이 있습니다. FuelPHP에 따르면 컨트롤러는 다음 위치에 있습니다.fuel/app/classes/controller/. 먼저 Employee Controller를 생성하겠습니다.

employee.php

<?php  
   class Controller_Employee extends Controller { 
      public function action_home() { 
         echo "FuelPHP-Employee application!"; 
      }  
      
      public function action_index() { 
         echo "This is the index method of employee controller"; 
      } 
   }

컨트롤러 방법

컨트롤러는 다음 중 하나를 사용하여 웹 요청을 처리합니다. action_ 방법. 응용 프로그램의 요구 사항에 따라 많은 action_ 메서드를 만들 수 있습니다 . 기본 action_ 메소드는 action_index 입니다. action_index 메소드는 다음 URL 중 하나에서 호출 할 수 있습니다.

http://localhost:8080/employee/index
http://localhost:8080/employee/

결과

우리가 새로운 action방법 action_show 우리employee 신청.

<?php  
   class Controller_Employee extends Controller { 
      public function action_home() { 
         echo "FuelPHP-Employee application!"; 
      }  
      public function action_index() { 
         echo "This is the index method of employee controller"; 
      }  
      public function action_show() { 
         echo "This is the show method of employee controller"; 
      } 
   }

action_show 메서드는 다음 URL을 사용하여 호출 할 수 있습니다.

http://localhost:8080/home/show

결과

before () 메서드

방법을 만들 수 있습니다. before컨트롤러에서. 이 메소드는 각각의 모든 action_ 메소드 호출 전에 실행 됩니다. 해당 메소드가 존재하지 않는 것으로 밝혀지면 호출되지 않습니다. 이 방법은 로그인 확인, 기본 데이터 가져 오기 등과 같은 일반적인 작업을 작성하는 데 도움이됩니다.

before 메서드를 만들고 간단한 텍스트 메시지를 인쇄 해 보겠습니다 .

public function before() { 
   echo "This message comes from <em>before()</em> method</br>"; 
}

작업 전 인덱스 페이지

작업 전 페이지 표시

after () 메서드

after() 방법은 before()하지만 action_ 메소드가 호출 된 후에 실행 됩니다. after () 메서드는 응답 을 입력으로 받아 응답 객체를 반환 합니다.

public function after($response) { 
   if ( ! $response instanceof Response) { 
      $response = \Response::forge($response, $this->response_status); 
   } 
   return $response; 
}

입력이 NULL이거나 응답 객체가 아닌 경우 Response의 forge 메서드를 사용하여 새 Response 객체를 만들고 반환합니다. 응답 클래스는 다음 장에서 자세히 배웁니다.

컨트롤러 확장

하나의 컨트롤러를 다른 컨트롤러에서 확장 할 수 있습니다. 다음은 기본 구문입니다.

class Controller_Employee extends Controller_Welcome { 
   // controller methods 
}

이것은 공유 방법에 도움이 될 것입니다.

컨트롤러 생성

Fuel에는 Oil 명령을 사용하여 컨트롤러를 생성하는 옵션이 있습니다. 다음은 구문입니다.

통사론

oil g controller <controller-name>

oil g controller sample

위의 명령을 실행하면 다음과 같은 응답이 표시됩니다.

결과

Creating view: /path/to/project/fuel/app/views/template.php 
Creating view: /path/to/project/fuel/app/views/sample/index.php 
Creating controller: /path/to/project/fuel/app/classes/controller/sample.php

컨트롤러 유형

FuelPHP는 다양한 목적을 위해 다양한 유형의 컨트롤러를 제공합니다. 그들은 다음과 같습니다-

  • 기본 컨트롤러
  • 템플릿 컨트롤러
  • 나머지 컨트롤러
  • 하이브리드 컨트롤러

기본 컨트롤러

Controller는 FuelPHP에서 사용할 수있는 모든 다양한 유형의 컨트롤러를위한 기본 컨트롤러입니다. 웹 요청을 처리하는 데 필요한 모든 기본 기능을 제공합니다. 요청, 응답, 세션 등을 지원합니다. 달리 명시하지 않는 한 모든 예제에서 사용합니다.

템플릿 컨트롤러

템플릿 컨트롤러는 기본 컨트롤러의 확장입니다. 템플릿 지원, 미리 정의 된 before () 및 after () 메서드가 있습니다. 기본적으로 헤더, 푸터, 사이드 바 등이있는 레이아웃에서 뷰를 래핑하는 데 사용할 수 있습니다. 템플릿 컨트롤러를 생성하려면 Controller_Template 클래스 를 확장해야합니다 . 기본적으로 Controller_Template 을 확장하는 클래스의 모든 메서드 는 템플릿을 사용해야합니다.

다음과 같이 정의됩니다.

class Controller_Employee extends Controller_Template { 
   public function action_index() { 
      // add methods 
   } 
}

뷰 장에서 템플릿 컨트롤러에 대해 자세히 설명합니다.

나머지 컨트롤러

Rest Controller는 기본 컨트롤러의 확장입니다. REST API 프로그래밍에 대한 사전 정의 된 지원이 있습니다. 이를 통해 API를 쉽게 구축 할 수 있습니다.

나머지 컨트롤러를 생성하려면 Controller_Rest 클래스 를 확장해야합니다 . 다음과 같이 정의됩니다.

class Controller_Employee extends Controller_Rest { 
   public function action_index() { 
      // add methods 
   } 
}

나머지 컨트롤러에 대한 자세한 내용은 Ajax 장에서 설명합니다.

하이브리드 컨트롤러

하이브리드 컨트롤러는 단일 기본 컨트롤러에서 REST 컨트롤러와 템플릿 컨트롤러의 기능을 모두 수행합니다.