2011-08-29 5 views
1

PHP MVC 프레임 워크를 코딩하고 있습니다. 이제 코딩을 시작할 때 구현이 어떻게되어야하는지에 대해 알지 못했습니다. Index.php router.php registry et al. 기본 컨트롤러와 모델 등을 어디에서로드해야합니까? PHP에 적용 할 때 MVC의 흐름을 보여주는 다이어그램이 있습니까? 일반적인 MVC 패턴이 아니라 PHP 기반? 많은 튜토리얼을 읽었으며 동일한 기술을 사용하지 않고 있습니다!이벤트 흐름 : PHP MVC 패턴

+0

: http://stackoverflow.com/questions/3153347/need-guidance-regarding-the-correct-flow-of-my-php -mvc-framework –

+0

[양식은 기능을 따른다] (http://en.wikipedia.org/wiki/Form_follows_function). 다양한 컴포넌트에 대한 특별한 필요가 없다면 MVC와 같은 패턴을 구현할 때 거의 이점이 없다. 필요성이 종료되면 패턴은 자동 정의됩니다 ([with] (http://oreilly.com/php/archive/mvc-intro.html) [a] (http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1 /) [약간] (http://php-html.net/tutorials/model-view-controller-in-php/) [도움말] (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)). –

답변

6

경고 경고 :이 답변은 구식이며 "이해"에 근거하여 약 6 년 전에 작성되었습니다. 가까운 미래에 업데이트를 시도 할 것입니다.

단 한 건의 "올바른 방법"으로 내기가 잘못되었습니다.

나는 주관적인 것에 만 설명 할 수 있습니다.

  • 세트 환경
  • 로드 (외부 DOCUMENT_ROOT 존재)
    • 가 등록
  • bootstrap.php를 bootstrap.php 상수

    • 의 index.php : 여기 차수 자동 로더
    • 로드구성
    • 라우터
    • model factory
    • 라우터로부터의 데이터에 의해 결정 controller를 생성 작성 경로로부터 수신 된 데이터를 수집
      • 제어기에 의해 결정
    • view를 생성하는 생성자 모델 공장을 필요 (V와 C에서 1 : 1 관계가 있음)
    • 컨트롤러에서 작업을 실행합니다. d 라우터에서 데이터에 의해 etermined
      • models
      • 보기의
      • 변경 상태가
    • 보기 페이지를 렌더링 모델의
    • 변경의 상태를 볼 수 있도록 모델을 결합하는 새로운 만들 모델 공장을 사용
      • 바운드 모델의 데이터 요청
      • templates

이 다소 소위 다음과 모델 2 또는 웹 MVC 구조 용도를 결정한다.

모델은 비즈니스 로직을 담당하고 프리젠 테이션 로직과 컨트롤러를 표시하며 컨트롤러는 두 모델을 함께 연결하고 들어오는 매개 변수에 따라 상태를 변경합니다. 아래 링크는 내가 필요로 무엇을 할 수 있는지 확인하려고

enter image description here

+0

게시물에이 다이어그램이 있습니다. 나는 그것이 좋은 것이라고 생각한다. 그들이 많은 감각을 발휘하는 것처럼 당신의 설명을 소화합시다 http://stackoverflow.com/questions/2180106/what-is-the-mvc-program-flow –

+0

그리고 모델 공장과 오토로더 란 무엇입니까? –

+0

@Stefano Autoloader는 [spl_autoload_register()] (http://php.net/manual/en/function.spl-autoload-register.php)에 기반한 클래스 (또는 단일 기능 일 수도 있습니다)입니다. 클래스 작업을 단순화하는 것은 PHP의 메커니즘입니다. 모델 팩토리의 경우 동영상 [1] (http://www.youtube.com/watch?v=RlfLCWKxHJ0) 및 [2] (http://www.youtube.com/watch?v=- FRm3VPhseI)이 점을 이해합니다. 기본적으로 그것은 당신을 위해 다른 모델을 생성하는 클래스입니다 (필요하다면 DB 액세스 또는 캐싱 포함). –