, [Codeigniter]Static pages

반응형

Static pages

 

참고 :이 자습서에서는 CodeIgniter를 다운로드하고 개발 환경의 프레임 워크를 설치합니다.

가장 먼저 할 일은 정적 페이지를 처리 할 컨트롤러를 설정하는 것입니다.

 

컨트롤러는 단순히 작업을 위임하는 데 도움이되는 클래스입니다.

 

예를 들어 다음과 같이 호출 할 때 : http://example.com/news/latest/10

 

"뉴스"라는 컨트롤러가 있다고 상상할 수 있습니다.

방법은 뉴스에 대한 호출은 "최신"입니다.

 

뉴스 방식의 임무는 뉴스 항목을 페이지에 렌더링합니다.

 

MVC에서 자주 볼 수 있습니다.

 

일치하는 URL 패턴 : http://example.com/[controller-class]/[controllermethod]/[arguments]

 

URL 체계가 더 복잡 해짐에 따라 변경 될 수 있습니다.

 

 

첫 번째 컨트롤러를 만들어 보겠습니다.

다음 코드를 사용하여 app / Controllers / Pages.php에 파일을 만듭니다.

<?php namespace App\Controllers;
use CodeIgniter\Controller;
class Pages extends Controller {
public function index()
{
return view('welcome_message');
}
public function showme($page = 'home')
{
}
}

 

허용하는 showme 메서드를 사용하여 Pages라는 클래스를 만들었습니다.

 

$page라는 인수 하나. 또한 다음과 같은 index() 메서드가 있습니다.

app / Controllers / Home.php에있는 기본 컨트롤러;

 

그 방법은 CodeIgniter 시작 페이지.

Pages 클래스는 CodeIgniter \ Controller 클래스를 확장하고 있습니다.

 

이것은 새로운 Pages 클래스는에 정의 된 메서드와 변수에 액세스 할 수 있습니다.

 

CodeIgniter \ Controller 클래스 (system / Controller.php).

컨트롤러는 웹에 대한 모든 요청의 중심이 될 것입니다.

 

신청. 다른 PHP 클래스와 마찬가지로 컨트롤러 내에서 다음과 같이 참조합니다.

$ this. 이제 첫 번째 방법을 만들었으므로 기본 페이지를 만들 차례입니다.

 

템플릿. 두 개의 "보기"(페이지 템플릿)를 만들어서

페이지 바닥 글 및 머리글. app / Views / templates / header.php에

헤더를 만들고 다음을 추가합니다. 

<!doctype html>
<html>
<head>
<title>CodeIgniter Tutorial</title>
</head>
<body>
<h1><?= $title; ?></h1>
The header contains the basic HTML code that you’ll want to display before
loading the main view, together with a heading. It will also output the $title
variable, which we’ll define later in the controller. Now, create a footer at
app/Views/templates/footer.php that includes the following code:
<em>&copy; 2019</em>
</body>
</html>

 

컨트롤러에 로직 추가 앞서 showme () 메서드로 컨트롤러를 설정했습니다.

 

이 방법은 로드 할 페이지의 이름 인 하나의 매개 변수.

정적 페이지 본문은 app / Views / pages / 디렉토리에 있습니다.

 

해당 디렉토리에서 home.php 및 about.php라는 두 개의 파일을 만듭니다.

이내에 해당 파일에 원하는 텍스트를 입력하고 저장합니다.

 

당신이 좋아한다면 특히 독창적이지 않으려면 "Hello World!"를 시도하십시오.

 

이러한 페이지를로드하려면 요청한 페이지가 실제로 존재합니다.

페이지에서 showme () 메소드의 본문이됩니다.

위에서 만든 컨트롤러 :

public function showme($page = 'home')
{
if ( ! is_file(APPPATH.'/Views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
throw new \CodeIgniter\Exceptions\PageNotFoundException
}
$data['title'] = ucfirst($page); // Capitalize the first letter
echo view('templates/header', $data);
echo view('pages/'.$page, $data);
echo view('templates/footer', $data);
}

 

이제 요청 된 페이지가 존재하면 헤더 및 바닥 글를 포함하여로드됩니다.

 

요청한 페이지가 존재하지 않는 경우 "404 페이지를 찾을 수 없음"오류가 표시됩니다.

 

이 메서드의 첫 번째 줄은 페이지가 실제로 존재하는지 확인합니다.

PHP 기본 is_file () 함수는 파일이있는 위치를 확인하는 데 사용됩니다.

 

PageNotFoundException은 다음과 같은 CodeIgniter 예외입니다.

기본 오류 페이지를 표시합니다.

 

헤더 템플릿에서 $ title 변수는 페이지를 사용자 지정하는 데 사용되었습니다.

표제. 제목 값은이 방법에서 정의되지만 값을 변수에 할당하면 $ data 배열의 제목 요소에 할당됩니다.

 

마지막으로해야 할 일은 뷰를 순서대로로드하는 것입니다. 

CodeIgniter에 내장 된 view () 메소드가 사용됩니다.

 

이것을하기 위해. view () 메서드의 두 번째 매개 변수는 값을 전달하는 데 사용됩니다.

 

보기에. $ data 배열의 각 값은 키의 이름. 따라서 컨트롤러의 $ data [ 'title'] 값은 보기에서 $ title에 해당합니다.

 

노트 view () 함수에 전달 된 모든 파일 및 디렉토리 이름은 일치해야합니다.

실제 디렉토리 및 파일 자체의 경우 또는

대소 문자를 구분하는 플랫폼에서 시스템에서 오류가 발생합니다.

 

728x90
LIST

'TIP&TECH > Web' 카테고리의 다른 글

[Bootstrap] Alerts / 경고  (0) 2020.12.24
[Codeigniter]Routing  (0) 2020.12.23
[html]meta tag  (0) 2020.12.20
[text]글자 수 제한  (0) 2020.12.19
[html]pc / mobile 구분  (0) 2020.12.18

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band