중간 트랜잭션 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