MVC 이론 및 PHP에서 MVC를 실현 하는 방법에 대 한 간략 한 설명

출처: 인터넷
작성자: 사용자

중간 트랜잭션 http://www.aliyun.com/zixun/aggregation/6858.html "> seo 진단 Taobao 게스트 클라우드 호스트 기술 홀

믿습니다 같은 많은 기사, 하지만 오늘은 내가 당신과 함께 내 경험을 공유 하 고 싶습니다. 순수한 원래, 나 또한 아무 예약, 초보자 수 있도록 노력 하겠습니다, 있다 잘못 된 장소를 말했다 또한 지적 환영 합니다.

MVC는 무엇입니까?

사이트 소스 코드 분류를 간단히 레이어 링.

MVC 3 글자 의미:

M:model 모델, 데이터베이스 작업에 대 한 책임.

V:view 보기, 최종 효과 보여주는 모델 데이터를 페치 한 다음 서식 파일 호출을 호출에 대 한 책임 이다.

C:controller 컨트롤러, 프로그램의 항목을 전화, 보기 및 보기에 게 무엇을 할 결정 합니다.

이 경우에 프로그램의 실행 순서는 C-V-M 또는 C-M, 그리고 MVC의 이름은 반대.

왜 MVC?

1. 웹사이트 프로그램 물리적 구조를 더 합리적인 만들 수 있습니다.

PHP에서 웹 사이트를 구축할 때 어리석은 방법으로 구축할 수 있습니다 각 페이지에 대 한 PHP 파일. 사이트만 index.php,menu.php.article.php 3 페이지, 다음 수 없습니다 MVC, 하지만 우리는 일반 사이트, 종종 수십 페이지, 루트 디렉터리에 있는 모든 페이지를 넣어은 분명 하지 우리에 게 허용 그래서 당신이 코드를 분류 하는 합리적인 마음, 함수, 다른 디렉토리에 그들을 분할 하 고 MVC 당신이 도움이 될 것입니다 무슨 이다 프로그램 정보에 의해 호출을 로드.

2. 쉽게 코드 유지.

우리는 단일 페이지를 보면는 멍 청 한,은 PHP 코드와 HTML 코드 믹스, 명백 하 게 충분히 좋지 않다, 당신은 PHP가 구별 해야 할 때 사이트를 유지 하기 위해 HTML, 프로그래머에 대 한 단순히 재해는가. 그래서 많은 사람들이 멋 지, 사용 하는 "데이터 처리" 및 "디스플레이 페이지" 분리 될 수 있다, 이것은 정말 좋은, 많은 사람들이 그렇게 하 고 있다 하지만 이것은 mvc mvc 할 하는 것입니다 "데이터 처리" "논리 처리" 및 "데이터베이스" 작업, 레이어 링 이라고 나뉘어집니다.

체크 V 또는 서식 파일을 이동 하는 페이지 표시 오류 프로그램 잘못 하거나 변경 하려면, 그것은 매우 쉽게 된다, 그래서 논리는 문제가, 체크 C와 V;

사실, MVC는 일반적으로 4에 PHP의 페이지 페이지, 각각 분할, c, v, m, 템플릿 하 고 싶어. 그들의 임무를 수행 하 고 관리를 용이 하 게.

3. 유용한 코드 재사용에 대 한.

MVC는 일반적으로 디렉터리 관리 즉, C에에서 큰 기능을 넣어 것입니다.

회원 시스템을 포함 하는 웹사이트를 할, 예를 들어 우리 회원 관련 코드를 넣을 수 있습니다 사용자 디렉토리에 User_controller 통합 관리 하 여 다른 사이트 또한 우리 회원 시스템을 필요로 할 때 우리 직접 복사할 수 디렉터리 과거, 그것의 인터페이스를 수정.

PHP에서 MVC를 구현 하는 아이디어

우리는 세 가지 기본 클래스를 필요: 상속 컨트롤러, 뷰, 모델, 및 다음 다른 C, V, m 들은 해당 속성 및 메서드 이해 하지 않으면 여기, 당신은 객체 지향 책을 보고 갈 수 있다.

난 단지 참조용 MVC 기본 클래스 디자인 아이디어 제공:

1입니다. 컨트롤러 클래스의 디자인

프로그램 호출에 대 한 주 () 방법을 통해 주로 고 처리 하는 방법을 결정 하는 변수를 게시.

디렉터리의 m을 호출 하는 데이터베이스를 호출 하는 데 필요한 때 Getmodel ($model) 메서드.

Main () 메서드에서 라는 디스플레이 ($view) 메서드를 해당 V 로드 및 V;의 주요 () 메서드를 삭제

2. 뷰 클래스의 디자인 컨트롤러와 비슷합니다.

C V, 계속 프로그램을 수 있도록 로드 될 때이 메서드를 호출 하는 주 () 메서드.

디렉터리의 m을 호출 하는 데이터베이스를 호출 하는 데 필요한 때 Getmodel ($model) 메서드.

표시 ($template) 호출에서 해당 서식 파일을 서식 파일에 데이터를 전달 합니다.

3. 모델 클래스의 디자인

정의 테이블, 조작 등의 속성을 해당 필드를 조작 하 고 등 수 있습니다.

데이터베이스 클래스 (클래스는 일반적으로 단일 모드에서 설계 된 데이터베이스)의 인스턴스를 가져오기 위해 Getdb () 메서드

데이터를 로드 하는 부하 () 메서드.

자동으로 SQL 문을 생성 하 고 정의 된 속성에 따라 삽입 작업을 수행 하는 Add () 메서드.

Eidt () 메소드, 저 두 요, 하지만 수정 작업을 수행 합니다.

델 () 메소드, 저 두 요, 하지만 삭제 작업을 수행 합니다.

더 내 생각의 동작을 이해 하는 초보자 수 있도록, 우리는 지금 MVC의 작동 방식을 볼 수 사용자 로그인 시나리오를 시뮬레이션 합니다.

이제 모든 데이터 index.php에 전송 가정

첫 번째 단계:

우리는 각 get 변수를 제출 하 고 index.php를 예를 들어 Index.php?controller=user을 사용 하는 C에 게

다음 인덱스 받는 get 변수를 찾기/사용자에 게 직접 할 것 / controller.php, 그에 게 모든 데이터를 던져 원래와 게시물 이므로 글로벌, index.php 또한 필요가 없습니다 아무것도 할 직접이 index.php 작업 완료에,에 주요 C 함수를 호출.

2 단계:

C의 주요 함수 실행, 변수를 검사 하 여, 로그인 작업을 수행 하는 사용자를 발견 (매우 간단 합니다, 당신은 게시 변수 로그인 가능 = 할), 다음 호출는 Getmodel, (example/user/models/model.php)에 대 한 해당 m 클래스를 로드 하 고 인스턴스화합니다, 인스턴스의 Load 메서드를 호출, 올바른 경우 제출된 데이터 잘못 된 헤더 오류 페이지로 이동 하는 경우 사용자가 동일한 암호를 전송 여부를 확인 하기 위해 사용자의 데이터를 로드, 표시 () 메서드를 호출, 해당 V 로드 (예를 들어 조회/사용자 / / details.php), 고 인스턴스화할 그것의 주요 () 함수를 호출 하 고 세 번째 단계를 입력. 이 C에 작업 완료, 하 고 두 번째 main 함수에서 작동 하지 않습니다.

3 단계:

당신은 선택적으로 Getmodel () 부하 m, fetch 데이터를 다시 작성 하거나 C 인스턴스화하고 V, 그리고 V 로드 하 여 데이터, 표시 (), 템플릿, MVC를 실행 결정 되었습니다 (예를 들어 세션) 매개 변수를 전달.

물론, 단어 및 에너지 제한 때문에 여기만 매우 간단한 요약, 세부, 많이 고려 하는 시간의 실제 구현 하지만 mvc 디자인, 아마 아이디어는 실제에 사용이 좋은 느낌.

이 문서는 부드러운, 쓰기 실제 것 들, 초보자, 있도록 하겠습니다 당신이 이해 하지 않으면, 미안 해요, 내 글은 제한 됩니다.

소스 작성자를 지정 하십시오 무단 전재: Liu Dongxin (Bitpart) 기존 주소: http://www.wodianer.net/article_52_PHP-MVC.html

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.