수색…


비고

MVC는 Model-View-Controller의 약자입니다. 데이터 액세스, 비즈니스 로직 및 사용자 인터페이스를 구분하는 모든 애플리케이션을 MVC라고합니다. MVC에는 컨벤션 기반과 컨피규레이션 기반의 두 가지 유형이 있습니다. 예를 들어, cakePHP는 관행에 기반합니다. 즉, 핵심 시스템의 지침에 따라 모듈을 몇 줄만 준비하면됩니다. Magento는 구성 기반입니다. 즉, 작동시키기 위해서는 모듈의 설정 파일에 모든 것을 지정해야합니다. Magento에는 컨트롤러 (라우팅 용), 블록, 모델 및 템플릿 파일이 있습니다. Magento의 MVC 작동 방식 :

  1. URL ( http://mysite.com/frontname/controller/method/param1/value1/param2/value2 와 같은 ) 을 입력하면이 URL은 Magento 응용 프로그램을 인스턴스화하는 index.php라는 하나의 PHP 파일에 의해 차단됩니다
  2. Magento 응용 프로그램은 Front Controller 객체를 인스턴스화합니다.
  3. 또한 프런트 컨트롤러는 모듈의 config.xml, global 태그에 지정된 라우터 객체를 인스턴스화합니다.
  4. 이제 라우터는 우리의 URL에있는 frontname과 "일치"할 책임이 있습니다
  5. "일치"가 발견되면 마지막으로 호출 된 URL에 컨트롤러 이름과 메소드 이름이 표시됩니다.
  6. 이제 액션 이름 (메소드 이름)에 기록 된 내용에 따라 실행됩니다. 모델이 호출되면 컨트롤러 메소드는 해당 모델을 인스턴스화하고 요청 된 메소드를 호출합니다.
  7. 그런 다음 컨트롤러 작업 (메서드)은이 작업 (메서드) 이름에 지정된 Block을 호출하는 Layout 개체를 인스턴스화합니다 (각 컨트롤러 작업 이름에는 app / design / frontend 또는 adminhtml / namespace / module / layout / module.xml 파일, 레이아웃 파일 (module.xml)의 이름은 레이아웃 업데이트 태그에서 해당 모듈의 config.xml에서 찾을 수 있습니다.
  8. 템플릿 파일 (.phtml)은 모든 메소드 요청에 대해 해당 블록을 호출합니다. 그래서 $ this-> methodName을 .phtml 파일에 쓰면 module.xml 파일에있는 블록 파일의 "methodName"을 검사하게됩니다.
  9. Block은 PHP 로직을 포함합니다. 그것은 DB에서 모든 데이터에 대한 모델을 참조하십시오.
  10. 블록, 템플릿 파일 또는 컨트롤러 중 일부 데이터를 데이터베이스에서 가져 오거나 설정해야하는 경우 Mage :: getModel ( 'modulename / modelname')과 같이 Model을 직접 호출 할 수 있습니다.

Magento에서 MVC 이해

여기에 이미지 설명을 입력하십시오.

Magento의 MVC 흐름

여기에 이미지 설명을 입력하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow