MVC 패턴을 따르는 MySQL 데이터베이스 기반 PHP (W) CMS 응용 프로그램을 만듭니다. 먼저 프레임 워크를 살펴보십시오. MVC 프레임 워크는 요청을 처리하고 URL을 기반으로로드/호출 할 대상을 결정합니다. http://domain.com/user/details/121
은 User
컨트롤러 객체를로드하고 인스턴스화하며 userid가 0으로 전달 된 details(121)
메서드를 호출합니다. 매개 변수를 입력 한 다음 User_Model
을 인스턴스화하고 121 사용자 ID를 사용하여 사용자의 세부 데이터를 묻고 마지막으로 결과를 View
과 함께 표시하십시오. 이것은 MVC 아키텍처의 기본 개념입니다. 특별히이 시점에서 모든 것이 명확합니다.PHP의 프론트 엔드 페이지에 대한 URL 라우팅 패턴
반면 CMS가 될 것이므로 Page
모델을 처리하고 싶습니다. nesessary 권한 (주로 관리자 및/또는 루트)이있는 사용자는 예를 들어, 페이지의 기본 CRUD 작업 및 기타 물건을 수행 할 수 있습니다 내가있는 페이지를 만들 수 있습니다
- 타일 = '회사 소개 '(예 : 예 : HTML 제목 및 h1 태그와 같은 페이지 제목 또는 브라우저 제목으로 표시됩니다.)
- URL 이름 ='* about_us * '(URI 끝점과 같습니다. :
http://domain.com/about_us
) - 참조 이름 = '우리는 누구입니까?'(이것은 메뉴 바에 표시되는 텍스트입니다)
- 페이지 내용 = '가 lorem ipsum의 ...'(다음은 WYSIWYG HTML을 텍스트 편집기로 페이지 ...의 실제 내용)
- 과 아래에 하위 페이지를 지정하려면 페이지를 구성하는 등 더 많은 옵션 (I는 다음
http://domain.com
해당 페이지의 콘텐츠를로드 automaticall하는 시작 페이지로 '우리 소개 '을 설정하면 의미) 상위 페이지 또는 페이지 시작 페이지를 만들기 ...
아니면 이러한 속성을 수정할 수 있습니다, 심지어 내가 페이지를 삭제할 수 있습니다 ... 등.
MVC 프레임 워크는 프론트 엔드와 백엔드 호출을 처리하는 데 차이가 없습니다. 예를 들어 우리는 몇 가지 요청이 :
http://domain.com/user/details/121
http://domain.com/about_us
http://domain.com/our_products/1255
내가 전에 설명, 하지만 다른 사람들이 프론트 엔드 컨텐츠를로드와 같은 백엔드 컨트롤러를로드 할 첫 번째 .부트 스트랩은 위의 예에서, 우리는 실제 컨트롤러 파일을 찾아 적절한 컨트롤러/액션을로드 할 때 :
/controllers/Users.php
/controllers/About_us.php
/controllers/Our_products.php
첫 번째가 있기 때문에로드 할 수 있습니다 이전에 작성된 '정적'컨트롤러이지만 About_us 및 Our_products는 기존 컨트롤러가 아닙니다. 컨트롤러를로드 할 수없는 경우 부트 스트랩은 데이터베이스를 검색합니다. 같은 URL denimination (about_us, our_products와 같은)이있는 페이지가 있습니까? 존재한다면, 우리는 공통의 FrontEndController를로드하고 요청 된 페이지 데이터를 디스플레이한다. 그렇지 않다면, 404 에러를 디스플레이한다.
부트 스트랩이 모든 요청을 동일한 방식으로 처리하기를 원하지만 모든 프론트 엔드 URL에 강제로 FrontEndController
(예 : http://domain.com/FrontEndController/our_products/1255
)을 포함하고 싶지 않기 때문에이 작업을 수행합니다. 그래서 이것은 사용자로부터 숨기는 방법입니다. 따라서 URL은보다 사용자 친화적 인 상태로 유지 될 수 있습니다. 내 질문은 : 이것은 좋은 습관인가? 아니면 이것을 할 수있는 다른 적절한 방법이 있습니까?
보내기 사용자가
Content-Type