> 백엔드 개발 > PHP 튜토리얼 > 리튬 프레임 워크 : 시작하기

리튬 프레임 워크 : 시작하기

Christopher Nolan
풀어 주다: 2025-02-21 10:46:10
원래의
732명이 탐색했습니다.

Lithium Framework: Getting Started 리튬 프레임 워크 초보자 : 키 포인트

컨트롤러는 응용 프로그램 라우팅 시스템에 의해 라우팅 된 요청을 처리합니다. 보기는 비즈니스 로직을 프레젠테이션과 분리하고 브라우저에 표시되는 콘텐츠를 쉽게 주제 할 수있는 프레젠테이션 계층입니다. 모델은 데이터베이스의 컨텐츠를 정의하고 처리하여 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;
로그인 후 복사
로그인 후 복사
<🎜 🎜> <<> m 모델

<🎜 🎜> 요청 및 표현 논리가 처리되었으므로 시뮬레이션 된 페이지 데이터를 가상 데이터베이스 컨텐츠로 바꿔야합니다. 우리는 모델을 사용 하여이 정보를 추상화하고 쉽게 액세스 할 것입니다.

모델 클래스는 데이터베이스의 컨텐츠를 정의하고 처리하기 때문에 MVC 프레임 워크의 매우 중요한 부분입니다. 또한 응용 프로그램을 통해이 데이터에서 CRUD (작성, 읽기, 업데이트, 삭제) 작업을 쉽게 수행 할 수 있습니다. 그들이 리튬에서 어떻게 작동하는지 봅시다.

가장 먼저해야 할 일은 앱/모델 폴더에서 pages.php라는 클래스 파일을 작성하고 다음을 붙여 넣는 것입니다.

우리는 방금 기본 모델 클래스를 확장하고 모든 방법을 사용했습니다. 모델 클래스 이름은 관련 레코드가 포함 된 데이터베이스 테이블과 일치해야합니다. 따라서 페이지가 아닌 경우 리튬이 자동 으로이 명명을 얻기 위해이 명명을 단순화하기 때문에 그에 따라 조정하십시오.

다음,이 파일을 컨트롤러 클래스 파일에 포함시켜야하므로 네임 스페이스 선언 아래에 다음을 붙여 넣으십시오.

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;
로그인 후 복사
로그인 후 복사
다음은 Page () 메소드에서 모의 ​​콘텐츠를 삭제 하고이 함수가 $ ID 매개 변수를 전달하여 검색 해야하는 페이지를 알 수 있도록하는 것입니다. 남은 간단한 작업은 페이지 레코드를 쿼리하고 결과를보기로 전달하는 것입니다. 따라서 수정 된 page () 메소드는 다음과 같습니다.

우리는 모델 상위 클래스의 첫 번째 () 메소드를 사용하여 조건을 사용하여 쿼리합니다. 결과는 데이터 () 메소드를 사용하여 레코드 데이터를 검색하는 객체입니다. 이 데이터는 테이블 열의 이름을 키로 사용하는 배열을 취합니다. 나머지는 데이터베이스에서 얻은 것이 UNIX 타임 스탬프이기 때문에 PHP 날짜 () 함수를 사용하여 생성 된 필드를 포맷한다는 점을 제외하고는 이전과 동일합니다. 그게 다야.

http : example.com/site/page/1로 이동하면 ID 1이있는 페이지가 표시됩니다. 마지막 URL 매개 변수를 2로 전환하면 페이지가 두 번째 레코드를로드해야합니다. 정돈하다.
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);
로그인 후 복사
로그인 후 복사
결론

이 튜토리얼에서는 리튬 MVC 프레임 워크를 이해하고 사용하는 것이 얼마나 쉬운 지 보았습니다. 컨트롤러, 뷰 및 모델을 정의하는 방법과 함께 사용하여 깔끔하고 별도의 응용 프로그램 흐름을 만드는 방법을 배웠습니다. 또한 리튬 계약이 시작하는 데 얼마나 유용한 지 보았습니다. 우리가 그것을 깨닫지 못하더라도, 우리는 데이터베이스 컨텐츠를 추출하고 쉽게 액세스 할 수 있도록 노출시킵니다.

나는 당신이 무언가를 배웠기를 바랍니다. 리튬이 제공하는 다른 강력한 기능에 대해 더 깊이 파고 들기를 바랍니다. 내장 CRUD 방법은 무엇입니까? 그들을 확장하는 방법? 자신의 사용자 정의 경로를 정의하는 방법은 무엇입니까? 여러 레이아웃을 사용하여 더 작은 요소를 렌더링하는 방법은 무엇입니까? 이들은 웹 애플리케이션을위한 리튬 제공 강력한 기능이며 시도해 볼 가치가 있습니다.

나는 당신의 호기심을 불러 일으켰습니까? 이 훌륭한 프레임 워크에 대해 더 배우고 싶습니까?

(FAQ 부분은 원래 텍스트와 동일하며 수정이 필요하지 않습니다)

위 내용은 리튬 프레임 워크 : 시작하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿