리튬 프레임 워크 초보자 : 키 포인트
컨트롤러는 응용 프로그램 라우팅 시스템에 의해 라우팅 된 요청을 처리합니다. 보기는 비즈니스 로직을 프레젠테이션과 분리하고 브라우저에 표시되는 콘텐츠를 쉽게 주제 할 수있는 프레젠테이션 계층입니다. 모델은 데이터베이스의 컨텐츠를 정의하고 처리하여 CRUD (작성, 읽기, 업데이트, 삭제) 작업을 쉽게 만듭니다.
리튬은 MySQL, MongoDB 및 CouchDB를 포함한 다양한 데이터베이스를 지원합니다. 프레임 워크에는 또한 간결하고 검색 엔진 친화적 인 URL을 생성 할 수있는 강력한 라우팅 시스템이 있습니다.
리튬의 컨벤션은 쉽게 시작할 수있게 해줍니다. 내장 CRUD 메소드를 제공하고 사용자 정의 라우팅을 허용하며 여러 레이아웃을 지원하며보기에서 작은 요소를 렌더링합니다. 이러한 기능은 리튬이 웹 애플리케이션 개발을위한 강력한 도구입니다. -
리튬은 PHP 5.3 이상에 적합한 간단하고 효율적인 PHP 프레임 워크입니다. 너무 제한적이지 않고 웹 애플리케이션을 시작할 수있는 좋은 도구 세트를 제공하도록 설계되었습니다. -
우리는 URL 요청을 라우팅하기 위해 컨트롤러를 설정합니다. 이 컨트롤러는 데이터 모델을 사용하여 데이터베이스에서 일부 정보를 얻고 처리합니다. 그런 다음이 정보는보기를 사용하여 브라우저에 표시됩니다. 이 모든 것은 표준 MVC 프로세스이지만 리튬에서 실행하는 것이 기쁩니다.
-
나는 당신이 서버에 프레임 워크를 설정했다고 가정합니다. 적어도 URL로 이동할 때 기본 응용 프로그램의 시작 페이지를 볼 수 있습니다. 또한 정보가 포함 된 데이터베이스가 필요합니다. MySQL을 사용하지만 리튬은 MongoDB 또는 CouchDB와 같은 다른 많은 스토리지 시스템을 지원합니다.
계속 배우고 싶다면 git 저장소를 설정했으며 복제 할 수 있습니다. 마스터 브랜치에는 일반 리튬 프레임 워크가 포함되어 있으며 MVC 지점에는이 기사의 코드가 포함되어 있습니다. 리튬 하위 모듈을 초기화하고 업데이트하는 것을 잊지 마십시오. 데이터베이스에 연결하려면 앱/config/bootstrap 폴더에있는 connections_default.php 파일을 복사하여 connections.php로 이름을 바꿉니다. 그런 다음 파일에 자격 증명을 추가하십시오. -
시작하자.
데이터
흥미로운 MVC 컨텐츠를 입력하기 전에 정보가 포함 된 데이터베이스에 테이블을 추가합시다. 가상 페이지 데이터를 사용하므로 내 테이블 (이름이 지정된 페이지)은 ID 열 (int, auto-increment and Drimans Key), 제목 열 (Varchar 255), 컨텐츠 열 (텍스트) 및 생성 된 열 (생성 열)이 포함됩니다. int). 이 표에는 두 개의 행의 샘플 데이터가 있습니다. 단계를 정확히 따르고 싶다면 다음은 테이블 작성 문장입니다.
CREATE TABLE `pages` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL,
`content` text,
`created` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
로그인 후 복사
로그인 후 복사
다음은 내 가상 데이터 라인입니다
물론 다른 데이터를 사용할 수 있습니다.
INSERT INTO `pages` (`id`, `title`, `content`, `created`)
VALUES
(1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745),
(2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);
로그인 후 복사
로그인 후 복사
<<> C는 컨트롤러
의 의미입니다
컨트롤러는 아마도 모든 MVC 프레임 워크에서 가장 중요한 부분 일 것입니다. 그들의 목적은 응용 프로그램 라우팅 시스템에 의해 라우팅 된 요청을 처리하는 것입니다.
앱의 앱/ 컨트롤러/ 폴더를 보면 컨트롤러를 배치 해야하는 곳이라는 것을 알 수 있습니다. sitecontroller.php (각 컨트롤러 클래스는 자체 파일에 있음)라는 새 파일을 만들고 다음 클래스 선언을 정연시켜 시작합니다.
보시다시피, 리튬 기본 컨트롤러 클래스를 SiteController라는 자체 클래스로 확장합니다. 이 클래스에서는 URL에서 요청할 때 필요한 논리를 실행하는 메소드를 만들 수 있습니다. 우리는 그것이 실제로 나중에 어떻게 적용되는지 살펴 보지만 먼저 라우팅이 어떻게 작동하는지 이해해 봅시다.
<,> 기본적으로 URL을 구성 할 때 컨트롤러 클래스 이름 (이 경우 사이트), 메소드 및 매개 변수에 매핑되는 매개 변수를 사용합니다. 메소드 이름이 전달되지 않으면 리튬은 자체적으로 index ()이라는 메소드를 가정합니다. 따라서 http://example.com/site/로 이동하면 Lithium 이이 방법을 찾고 호출합니다. 이제 파라미터 ($ id)를 취하는 view ()라는 메소드가 있다고 가정합니다. 컨트롤러 메소드를 호출하는 URL은 http://example.com/site/view/1이며, 여기서보기는 메소드의 이름이고 1은 함수로 전달되는 매개 변수입니다. 메소드가 더 많은 매개 변수를 얻으면 URL의 슬래시 (/)로 분리됩니다.
그러나 내가 언급했듯이 이것은 기본 동작입니다. 자세한 내용은 /app/config/routes.php 파일에서 자신의 경로를 정의 할 수 있습니다. 자세한 내용은 보지 않지만 해당 문서 페이지에서 자세한 정보를 찾을 수 있습니다.
이제 가상 데이터베이스에서 개별 페이지를 표시 할 책임이있는 Page () 메소드를 작성하겠습니다.
위의 는 데이터베이스 페이지 정보를 시뮬레이션하여 배열에 저장합니다. 그런 다음이 배열을 컨트롤러의 set () 메소드 (상속)로 전달한 다음보기로 보냅니다. 또는 set () 메소드를 사용하는 대신 $ 데이터 배열을 반환 할 수 있습니다. 그러나 두 경우 모두 배열의 키는 변수 이름을 나타내며,이 파일에서 액세스 할 수 있습니다. 그것이 어떻게 작동하는지 봅시다.
<<> (다음 내용은 원본 텍스트와 유사하지만 문을 조정하고 다시 작성하여 원래 의도를 유지하며 중복 코드 블록을 피하기) <🎜 🎜> <?php namespace app\controllers;
class SiteController extends \lithium\action\Controller {
}
로그인 후 복사
<<> V는
<🎜 view를 나타냅니다
보기는 MVC 프레임 워크의 프리젠 테이션 계층입니다. 응용 프로그램의 비즈니스 논리를 표현에서 분리하는 데 사용되며 브라우저에 표시되는 콘텐츠를 쉽게 주제별로 만들 수 있습니다. <p><a> 페이지 정보를 표시하기 위해보기를 작성하겠습니다. 앱/ 뷰/ 폴더에서는 컨트롤러 클래스 (이 경우)를 사용하는 컨트롤러 클래스의 이름을 따서 명명 된 다른 폴더를 만들어야합니다. 이 폴더에서 .html.php 확장자가 첨부 된 메소드 자체의 이름을 따서 명명 된 파일을 만들어야합니다. 이것은 컨벤션 리튬 이름보기로 컨트롤러에 쉽게 연결할 수 있습니다. <p>
<page> 페이지 예제에 새 파일은 앱/뷰/사이트/page.html.php에 있습니다. </p>
이 파일에서 다음을 붙여 넣으십시오
<p>
<have> 당신이 추측 한 바와 같이, 여기에 컨트롤러에서 배열 키를 전달하도록 명명 된 변수를 인쇄 할 기본 태그가 있습니다. 리튬은이 구문을 사용하여 변수를 인쇄하고 $ h () 함수를 통해 실행되므로 HTML을 청소하는 데 도움이됩니다. 그러나 이것은이 개체의 속성이 아니라 인쇄 변수에만 적용됩니다. </p>
<we> 지금까지 수행 한 작업을 테스트하려면 http://example.com/site/page로 이동하면 시뮬레이션 정보를 보여주는 멋진 페이지가 표시됩니다. 또한 간단한보기가 더 복잡한 레이아웃 (프레임 워크와 함께 제공되는 기본 레이아웃)으로 렌더링됩니다. <p>
<in> 리튬의 레이아웃은 제목 및 바닥 글과 같은 일반적으로 사용되는 태그를 사용하여 콘텐츠를 래핑하는 데 사용됩니다. 그들은 앱/레이아웃 폴더에 위치하여 $ this- & gt; content ()를 사용하여보기를 렌더링합니다. 당사의 견해는 Default.html.php 레이아웃에서 기본적으로 렌더링되지만 원하는대로 다른 레이아웃을 지정할 수 있습니다. 컨트롤러에서 해당 컨트롤러의 모든 메소드에 적용되는 클래스 속성 또는 방법 자체에 다음과 같이보기를 렌더링하는 컨트롤러에서 다음을 수행 할 수 있습니다.
</p>
<to> 우리는 데모 목적에 적합 해 보이기 때문에 기본 레이아웃을 고수합니다. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>CREATE TABLE `pages` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL,
`content` text,
`created` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;로그인 후 복사