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

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는

보기는 MVC 프레임 워크의 프리젠 테이션 계층입니다. 응용 프로그램의 비즈니스 논리를 표현에서 분리하는 데 사용되며 브라우저에 표시되는 콘텐츠를 쉽게 주제별로 만들 수 있습니다.

페이지 정보를 표시하기 위해보기를 작성하겠습니다. 앱/ 뷰/ 폴더에서는 컨트롤러 클래스 (이 경우)를 사용하는 컨트롤러 클래스의 이름을 따서 명명 된 다른 폴더를 만들어야합니다. 이 폴더에서 .html.php 확장자가 첨부 된 메소드 자체의 이름을 따서 명명 된 파일을 만들어야합니다. 이것은 컨벤션 리튬 이름보기로 컨트롤러에 쉽게 연결할 수 있습니다.

페이지 예제에 새 파일은 앱/뷰/사이트/page.html.php에 있습니다.

이 파일에서 다음을 붙여 넣으십시오

당신이 추측 한 바와 같이, 여기에 컨트롤러에서 배열 키를 전달하도록 명명 된 변수를 인쇄 할 기본 태그가 있습니다. 리튬은이 구문을 사용하여 변수를 인쇄하고 $ h () 함수를 통해 실행되므로 HTML을 청소하는 데 도움이됩니다. 그러나 이것은이 개체의 속성이 아니라 인쇄 변수에만 적용됩니다.

지금까지 수행 한 작업을 테스트하려면 http://example.com/site/page로 이동하면 시뮬레이션 정보를 보여주는 멋진 페이지가 표시됩니다. 또한 간단한보기가 더 복잡한 레이아웃 (프레임 워크와 함께 제공되는 기본 레이아웃)으로 렌더링됩니다.

리튬의 레이아웃은 제목 및 바닥 글과 같은 일반적으로 사용되는 태그를 사용하여 콘텐츠를 래핑하는 데 사용됩니다. 그들은 앱/레이아웃 폴더에 위치하여 $ this- & gt; content ()를 사용하여보기를 렌더링합니다. 당사의 견해는 Default.html.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;
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으로 문의하세요.
unset ()와 session_destroy ()의 차이점은 무엇입니까?unset ()와 session_destroy ()의 차이점은 무엇입니까?May 04, 2025 am 12:19 AM

thedifferencebetweenUnset () andsession_destroy () istssection_destroy () thinatesTheentiresession.1) TEREMOVECIFICESSESSION 'STERSESSIVEBLESSESSIVESTIETSTESTERSALLS'SSOVERSOLLS '를 사용하는 것들

로드 밸런싱의 맥락에서 스티커 세션 (세션 친화력)이란 무엇입니까?로드 밸런싱의 맥락에서 스티커 세션 (세션 친화력)이란 무엇입니까?May 04, 2025 am 12:16 AM

stickysessionsureSureSureRequestSaroutEdToTheSERSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESSESINCENSENCY

PHP에서 사용할 수있는 다른 세션 저장 핸들러는 무엇입니까?PHP에서 사용할 수있는 다른 세션 저장 핸들러는 무엇입니까?May 04, 2025 am 12:14 AM

phpoffersvarioussessionsaveAndlers : 1) 파일 : 기본, 단순, 단순한 BUTMAYBOTTLENECKONHIGH-TRAFFICSITES.2) MEMCACHED : 고성능, IdealForspeed-CriticalApplications.3) Redis : SimilartomemCached, WithaddedPersistence.4) 데이터베일 : OffforIntegrati

PHP의 세션은 무엇이며 왜 사용됩니까?PHP의 세션은 무엇이며 왜 사용됩니까?May 04, 2025 am 12:12 AM

PHP의 세션은 여러 요청간에 상태를 유지하기 위해 서버 측의 사용자 데이터를 저장하는 메커니즘입니다. 구체적으로, 1) 세션은 session_start () 함수에 의해 시작되며 데이터는 $ _session Super Global Array를 통해 저장되어 읽습니다. 2) 세션 데이터는 기본적으로 서버의 임시 파일에 저장되지만 데이터베이스 또는 메모리 스토리지를 통해 최적화 할 수 있습니다. 3) 세션은 사용자 로그인 상태 추적 및 쇼핑 카트 관리 기능을 실현하는 데 사용될 수 있습니다. 4) 세션의 보안 전송 및 성능 최적화에주의를 기울여 애플리케이션의 보안 및 효율성을 보장하십시오.

PHP 세션의 수명주기를 설명하십시오.PHP 세션의 수명주기를 설명하십시오.May 04, 2025 am 12:04 AM

phpsessionsStartWithSession_start (), whithesauniqueIdAndCreatesErverFile; thepersistacrossRequestSandCanBemanBledentSandwithSession_destroy ()

절대 세션 타임 아웃의 차이점은 무엇입니까?절대 세션 타임 아웃의 차이점은 무엇입니까?May 03, 2025 am 12:21 AM

절대 세션 시간 초과는 세션 생성시 시작되며, 유휴 세션 시간 초과는 사용자가 작동하지 않아 시작합니다. 절대 세션 타임 아웃은 금융 응용 프로그램과 같은 세션 수명주기의 엄격한 제어가 필요한 시나리오에 적합합니다. 유휴 세션 타임 아웃은 사용자가 소셜 미디어와 같이 오랫동안 세션을 활성화하려는 응용 프로그램에 적합합니다.

세션이 서버에서 작동하지 않으면 어떤 조치를 취 하시겠습니까?세션이 서버에서 작동하지 않으면 어떤 조치를 취 하시겠습니까?May 03, 2025 am 12:19 AM

서버 세션 고장은 다음 단계를 따라 해결할 수 있습니다. 1. 서버 구성을 확인하여 세션이 올바르게 설정되었는지 확인하십시오. 2. 클라이언트 쿠키를 확인하고 브라우저가 지원하는지 확인하고 올바르게 보내십시오. 3. Redis와 같은 세션 스토리지 서비스가 정상적으로 작동하는지 확인하십시오. 4. 올바른 세션 로직을 보장하기 위해 응용 프로그램 코드를 검토하십시오. 이러한 단계를 통해 대화 문제를 효과적으로 진단하고 수리 할 수 ​​있으며 사용자 경험을 향상시킬 수 있습니다.

session_start () 함수의 중요성은 무엇입니까?session_start () 함수의 중요성은 무엇입니까?May 03, 2025 am 12:18 AM

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경