나는이 질문을 zfforums에 대해서도 물어 봤지만 아마도 여기에서 응답을받을 것이다.젠드 프레임 워크 MVC 디자인
젠드 프레임 워크는 범용적이고 유연하며 느슨하게 결합 된 고품질 프레임 워크입니다. 그러나 일부 MVC 부분은 일관성이없고 지나치게 복잡합니다. 희망이 여러분 중 일부는 ZF의 디자인 결정의 일부를 정당화하고 몇 가지 질문에 대답 할 수
일반적인 질문/의견
왜 MVC 다른 젠드 구성 요소와 같은 이름 지정 규칙을 따라야 젠드하지 않는 이유는 무엇입니까? 예를 들어, mvc는 소문자를 사용합니다. 복수의 디렉토리 이름과 클래스 이름 앞에는 디렉토리 정보가 없으므로 쉽게로드 할 수 없습니다.
모듈 루트 디렉토리를 추가하는 옵션을 원합니다. 그렇게하면 컨트롤러/모듈 디렉토리를 추가하여 디스패처를 명시 적으로 구성하지 않아도됩니다. 모듈에 넣고 즉시 액세스 할 수 있습니다.
왜 뷰 헬퍼와 액션 헬퍼가 다른가요? 현재 헬퍼는 코드 전체에서 공유되도록 설계되지 않았으며 헬퍼를로드하고 액세스하는 일관성없는 메소드가 있습니다. 다른 프레임 워크를 사용하면 코드의 어느 위치에서나 동일한 도우미를 공유 할 수 있습니다. 내가 전문적으로 DRY를 위반할 필요성을 알지 못합니다.
젠드보기
왜 뷰 리소스에 액세스 할 "이 $"사용하십니까 가지 질문? 여분의 타이핑이 필요하지 않습니다. 일부 다른 프레임 워크는 뷰 변수의 배열을 추출()하고 전역 함수를로드하거나 정적 헬퍼를 뷰에서 불러올 수 있습니다. myHelper :: someMethod();
왜보기 도우미는 클래스 당 하나의 기능 만 허용합니까? 그 결과 많은 수업과 관련 유지 관리가 이루어집니다. 이미 언급 한 것처럼 많은 수의 메소드로 정적 클래스를 선호합니다.
좋은 답변을 보내 주셔서 감사합니다. – rick
일반 질문 # 1에 대한 응답 : 일관성의 이름 (MIT에 따라 4 가지 좋은 코드의 특성 중 하나)에서 컨트롤러 이름은 "Admin_Controllers_Index"로 전환되어야합니다. 디렉터리와 클래스 이름에 대해 단일 "컨트롤러"를 사용하는 것이 더 일관성이 있습니다. – rick
일반적인 질문 # 2에 대한 응답 : 실제로, 기본 표준 디스패처를 확장하여 단일 루트 디렉토리를 사용하고 컨트롤러와 디렉토리가 zf lib 명명 규칙을 따르도록 디스패처를 작성했습니다. zf 융통성을 지키기 위해, 이것은 확실히 플러그 형이며 간단했습니다. – rick