2013-05-27 2 views
0

누군가가 대답 할 수 있기를 바라는 실존적인 질문이 있습니다.
왜 Cakephp 컨트롤러에 "컨트롤러"단어가 첨부되어 있어야합니까?컨트롤러 명명 규칙

내가 naming convention 무엇인지 알고 있지만 아무데도하지 않습니다 그것은 그렇게 (물론, 어쩌면 어딘가에 작성,하지만 나는 그것을 발견하지 않은) 이유를 말한다.

컨트롤러 클래스 이름은 우리는 PostModel.php, WhateverModel.php 또는 viewView.ctp, addView.ctp이없는 낙타 표기법, 복수, 그리고 컨트롤러

에서 끝. 모델은 Post.php 또는 Item.php입니다. 보기는 ... 글쎄요, 아무 것도 없지만 동작 끝에 "보기"를 추가 할 필요는 없습니다. 컨트롤러와의 차이점은 무엇입니까? 오류들이 ItemModel.php을 가지고입니다

나는 몇 가지 질문을 보았다, 나는 컨트롤러가 ItemsController.php 경우 혼란 이유 (하지만, 부여, 그것은 문서를 읽을 수있는 변명이 아니다) 이해합니다.

나는 우리가 컨트롤러 부분을 추가하지 않은 경우 Fish.php 모델, 컨트롤러는 Fish.php을 것 같은 굴절 문제를 방지하기 위해이었다 어쩌면 생각했다. 그러나 폴더의 분리는 매우 명확하고

/Controller 
    Fish.php 
/Model 
    Fish.php 

정말 문제가되지 않습니다 가지는입니다 ... 아니면 무엇입니까?

내 질문은 하지 얼마나 컨트롤러에 대한 명명 규칙이 그렇게이며, "다만 때문에"이외의 어떤 논리적 인 이유가 있다면. "우리는 버전 0.0.1에서 그런 식으로 시작했다. 그리고 나서 그것을 변경하는 것이 늦었다"라고해도 충분할 것이다.

답변

6

모델은 유형이 추가되지 않은 유일한 클래스입니다.

Something <- model class 
SomethingBehavior <- behavior class 
SomethingHelper <- helper class 
SomethingController <- controller class 
SomethingComponent <- Component class 
SomethingView <- View class 

당신은 할 수없는 다음

/Controller 
    Fish.php 
/Model 
    Fish.php 

적 같은 클래스 이름으로 PHP로 두 개의 클래스를 가져 오는 시도? PHP 5.3 네임 스페이스이이 치명적인 오류를 방지하기 위해 수행해야했다 무엇을하기 전에

Fatal error: class `Whatever` already exists (or something similar) 

를 (CakePHP의 클래스 이름이 2.X 때문에 파일 이름과 일치 할 것으로 예상). CakePHP 2.x 이하는 5.3 이하의 PHP 버전과 네임 스페이스를 대상으로했기 때문에 이것이 수행되었습니다.

또한 클래스 가져 오기가 클래스 이름에 쉽게 매핑되도록하려면 FishController 클래스에서 Fish.php를 사용할 수 없습니다. 그것은 치명적인 에러를 피할 것입니다.하지만 Cake는 그런 클래스를로드하지 않습니다.

는 CakePHP의 3.x를이 PHP 5.4을 대상으로한다하더라도, 컨트롤러/컴포넌트/행동 등

+0

가 완벽한 이해를 만든다 (는 아직도 최신 3.x branch에서, 아마도) 이전 버전과의 호환성을 위해 존재하는 것입니다. 마음의 평화가 회복되었습니다. 감사! – Nunser