/ Controller와 / controllers의 차이점


43

다른 어떤 것보다 이론적으로 나이를 묻는 질문이었습니다.

일반적인 Magento 모듈 파일 구조를 사용하여 확장 기능을 개발하는 데 정통합니다. 나는 Mage 'extensions'를 볼 때 / Controller 디렉토리가 포함되어 있음을 알았습니다. 이 컨트롤러의 목적은 무엇이며 / controllers 디렉토리에서 일반적으로 사용되는 컨트롤러와 어떻게 다릅니 까?

이름이 다르게 구성되어 있음을 알 수 있으므로 다른 방식으로 자동로드되는 것을 수집하고 있지만 / Controller 클래스는 어떤 용도로 사용됩니까?

모두 감사합니다

답변:


45

차이점은 앞서 언급했듯이 자동 로딩에 있습니다. 일반적으로 / Controller에있는 파일 은 / controllers의 클래스가 상속하는 Abstract (또는 부모) 클래스 입니다 .

Magento는 / Controller 디렉토리를 인식하도록 제작되지 않았습니다. 이는 관습의 문제입니다. 클래스 이름은 디스크에서 이러한 상위를 찾을 위치를 암시하고 오토로더가이를 찾습니다. 당신은 이것을 볼 수 있습니다 Mage_Sales:

class Mage_Sales_OrderController extends Mage_Sales_Controller_Abstract

여기서 판매 모듈은 컨트롤러를 내부에 배치 app/code/core/Mage/Sales/controllers하고로드 된 컨트롤러는 오토로더에 상위 위치를 알려app/code/core/Mage/Sales/Controller 줍니다.

이것은 관심사를 분리하고 구체적인 컨트롤러 클래스가 공통 기능을 상속 할 수 있도록하기 위해 수행됩니다.


그것은 완전한 의미가 있으며, 지금 당신이 그것을 설명했듯이, 실제로는 꽤 명백해 보입니다! 고마워 Phil!
thebluefox
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.