2015-02-02 1 views
0

미안하지만 모든 컨트롤러 앞에 다음 행이 기록 된 이유를 이해할 수 없습니다. 우리가 다음 코드를 작성하는 경우 모든 컨트롤러 전에 App :: uses ('Controller', 'Controller')를 사용하는 이유

App::uses('Controller', 'Controller'); 

우리가 AppController에 액세스 할 수있는 모든 재산과 Controller 클래스의 기능을 의미 controller 확장합니다. 내 코드 또는 perfomance에 어떤 영향을 App::uses('Controller', 'Controller');를 작성하지 않는 경우

class AppController extends Controller{...} 

그래서, 내 질문은?

+0

가능 중복 [응용 목적 :: 용도가 무엇인가 ('AppController가', '제어기') 각각의 제어기 - CakePHP의 (http://stackoverflow.com/questions/25229431/ 각각의 컨트롤에 컨트롤러가있는 컨트롤러) – ndm

답변

1

App :: uses는 PHP 자동 로더가로드 할 수 있도록로드 할 파일 (클래스에 해당)의 위치를 ​​등록하는 정적 메서드입니다. App::uses('AppController', 'Controller'); 라인은 선언

그건 그 AppControllerclass는 참조 (또는이 경우, 확장)과 AppController class 아직이 응용 프로그램/컨트롤러 디렉토리에있는 파일을 찾아서 실제 파일 이름을 구성해야한다고, 정의되어 있지 않은 경우 이렇게 : AppController.php 그 부분은 cakePHP 규칙, 일부 PHP5입니다.

당신은 PHP가 이미 메모리에의 AppController 클래스를 가지고 있으므로 해당 파일이 아마 bootstrap-- 동안, 응용 프로그램 (다른 컨트롤러에서 다른 곳으로 필요하기 때문에이 라인은 제거 할 때 아무것도 중단없는 이유.

그것의 이유 첫 번째 줄에 포함 된 것은 컨트롤러가 AppController 클래스를 확장하기 때문입니다. AppController 클래스에 대한 의존성이 커서 응용 프로그램 컨트롤러가 케이크 셸 또는 유닛 테스트 환경에서 자동으로로드되지 않으므로 포함되기 때문에 App :: uses는 cake (와 PHP)에게 '이봐, AppController 클래스를 찾고 있는데 아직 가지고 있지 않다면 app/Controller 디렉토리를 살펴보고 .php를 추가해야한다. 결국! ' 파일이 이미로드 된 경우 App :: uses는 아무런 영향을 미치지 않습니다.

What is the purpose of App::uses('AppController', 'Controller') in each controller - cakephp 참조

+0

기존 답변을 복제하는 대신 주석과 링크를 사용하십시오. – ndm

관련 문제