반응형
CI4 > Tutorial > 정적 페이지(Static pages)
출처:
http://ci4doc.cikorea.net/tutorial/static_pages.html
- app/Views 디렉토리에 pages 디렉토리를 생성한 후 about.php 및 home.php 생성
- app/Views 디렉토리에 templates 디렉토리를 생성한 후 header.php 및 footer.php 생성
- app/Controllers 디렉토리에 Pages.php 파일 생성
Pages.php
<?php
// 네임스 페이스는 디렉토리 구조를 따라가야 한다.
namespace App\Controllers;
// CodeIgniter\Controller 클래스에 정의된 메소드와 변수를 이용할 수 있다는 것을 의미
use CodeIgniter\Controller;
//Pages 클래스는 CodeIgniter\Controller클래스를 확장
class Pages extends Controller
{
public function index()
{
//view() RendererInterface 호환 클래스에게 지정된 뷰를 렌더링하도록 지시
return view('welcome_message');
}
public function view($page = 'home')
{
if (!is_file(APPPATH . '/Views/pages/' . $page . '.php')) {
//만약 app/Views/pages 디렉토리내에 관련 파일이 없다면 에러 발생
throw new \CodeIgniter\Exceptions\PageNotFoundException($page);
}
$data['title'] = ucfirst($page);
echo view('templates/header', $data);
echo view('pages/' . $page, $data);
echo view('templates/footer', $data);
}
}
전역함수 view()
형식: view($name[, $data[, $options]])
Parameters:
- $name (string) – 로드할 파일 이름
- $data (array) – 뷰 내에서 사용할 수있는 키/값 쌍의 배열
- $options (array) – 렌더링 클래스로 전달 될 옵션 배열
Returns: 뷰의 출력
Return type: string
header.php
<!doctype html>
<html>
<head>
<title>CodeIgniter Tutorial</title>
</head>
<body>
<h1><?= esc($title); ?></h1>
footer.php
<em>© 2019</em>
</body>
</html>
app/Config/Routes.php
<?php
/**
* --------------------------------------------------------------------
* Route Definitions
* --------------------------------------------------------------------
*/
// We get a performance increase by specifying the default
// route since we don't have to scan directories.
$routes->get('/', 'Home::index');
//어떠한 문자가 와도 Pages 클래스의 view 메소드를 매핑하고 문자열을 메소드 변수로 전달
$routes->get('(:any)', 'Pages::view/$1');
결과
'CI4' 카테고리의 다른 글
[코드이그나이터] [첫번째 어플리케이션 제작(튜터리얼)] 뉴스 아이템 만들기 [데이터 등록 페이지] (0) | 2020.08.31 |
---|---|
[코드이그나이터] [첫번째 어플리케이션 제작(튜터리얼)] 뉴스 섹션 (0) | 2020.08.31 |
[코드이그나이터] 라우팅 (0) | 2020.08.28 |
[코드이그나이터] 사용자 정의 예외 (0) | 2020.08.28 |
[코드이그나이터] esc() 전역함수 (0) | 2020.08.28 |