2010-08-14 3 views
0

나는 꽤 새로운 Zend Framework 사용자이지만 PHP 나 프로그래밍에 익숙하지 않다. 나는 코드를 통해 모든 것이 함께 슬롯을 잡으려고 노력했다. 내가 봤던 부분 중 하나는 클래스가 시스템에서 자동로드되는 방식입니다. 나는 그것을 볼 수 있습니다젠드 프레임 워크 액션 컨트롤러의 접미사가 왜 되는가?

  • Zend_Application_Bootstrap 젠드/응용 프로그램을 참조/Bootstrap.php에게
  • Zend_Controller_Action에는 참조 젠드/컨트롤러/Action.php을
  • ... 등 등

본질적 _ 변환 수 sepearator 디렉토리로 이동하여 자동로드됩니다.

내가 이해가 가지 않는 이유는 (물론 좋은 이유가 있음에도 불구하고) 액션 컨트롤러에서이 규칙을 따르지 않는 이유는 무엇입니까?

  • 인 IndexController 참조 응용 프로그램/컨트롤러/IndexController.php

왜 :

  • Application_Controllers_Index -> /Application/Controllers/Index.php
  • 또는
  • Controllers_Index - > /Application/Controllers/Index.php

?

나는 클래스에 접미사를주는 것이 짐작된다. 시스템의 복잡성을 어느 정도 줄여 준다. zend 프레임 워크를 처음부터 살펴 보았다. 모든 것이 잘 고려되었다. 좋은 이유없이 컨벤션이 도입되었다고 상상할 수 없다.

컨트롤러에 접두사가 붙는 이유를 설명 할 수 있습니까? 아니면 접두어를 사용해야하는 이유를 보여주는 코어의 일부 코드를 더 잘 지적 할 수 있습니까?

감사 :

답변

5

정직하게 말하면, 관례가 원래 개발 된 이유에 대해서는 완전히 확신 할 수 없습니다. 당시 다른 프레임 워크가 어떻게 발전해 왔는지는 의심 스럽습니다. 특히 RoR이 인기를 얻었고, 이것이 애플리케이션 리소스를 정의하는 방법이었습니다. (원래 MVC를 반복 할 당시 저는 Zend에서 막 시작 했었지만 2006 년 가을에 다시 작성 했었지만 그 목표는 이전에 개발 된 것과 일관되게 유지하면서 더 나은 기능을 제공하는 것이 었습니다 유연성).

우리는 응용 프로그램/계층 구조 아래의 모든 항목이 리소스이고 라이브러리 코드가 아니라는 아이디어를 강화하기 때문에 계속해서 패러다임을 따라갔습니다.이는 특히 트리 내에서 클래스가 아닌 코드 (보기 스크립트, 레이아웃 등)가있을 수 있기 때문에 중요합니다.

그러나 리소스로드를 도입하면 해결해야 할 문제가 있음을 알 수 있습니다. 리소스 로더는 기본적으로 증상을 해결하지만 반드시 근본 원인 (빈약 한 규칙)은 아닙니다. 우리가 ZF2에서 작업 할 때, 이것은 우리가 다시 방문 할 것입니다. 생각을 게시하는 데 관심이 있으시면 zf-contributors 메일 링리스트에 초대하십시오.

+0

안녕하세요 매튜,이 답변에 많은 감사드립니다. 나는 대회에 대한 기술적 인 이유를 찾기가 몹시 어려웠습니다. 다행스럽게도 이것은 ZF2에서 찾고있는 것이므로 필자는 메일 링리스트에 몇 가지 의견을 올릴 것입니다. – mike

0

컨트롤러의 파일 이름과 클래스 이름에는 후위 컨트롤러가 있어야합니다. 젠드 (Zend)는 클래스 이름에 접미사를 쓰고 제어기라는 것을 이해한다. 그는 컨트롤러 폴더에서이 클래스를 찾습니다.

+0

확실히 컨트롤러가 컨트롤러 디렉토리에 있기 때문에 컨트롤러인지 여부를 알 수 있습니까? – mike

0

저는 젠드 프레임 워크를 처음 접했을뿐입니다.하지만 젠드 프레임 워크가 현재 가지고있는 방식에 비추어 볼 때 제가 말할 수있는 것에서는 그럴만 한 이유가 없습니다. 상황이 시작된 시점에서 숙취인지 아니면 관련 인물의 선호인지 여부는 확실하지 않지만 ZF 2.0에서는 변경 될 것이라고 들었습니다.