CodeIgniter 4 시작 공식 자습서 (1) 정적 페이지 표시

CodeIgniter Advent Calendar 2021
공식 문서의 자습서를 참조하여 CodeIgniter4의 사용 방법을 정리합니다.
  • Build Your First Application — CodeIgniter 4.1.5 documentation
  • 카탈로그
  • CodeIgniter4 입문 공식 강좌 (1) 정적 페이지 표시
  • CodeIgniter4 입문 공식 강좌 (2) DB 데이터 표시
  • CodeIgniter4 입문 공식 강좌 (3) DB에 데이터 추가
  • 작업 확인 환경

  • CodeIgniter 4.1.5
  • phpMyAdmin 5.1.1
  • PHP 8.0.10
  • MySQL 8.0.27
  • Docker Desktop 4.2.0
  • macOS 10.15.7
  • 설치하다.


    cool을 사용하여 CodeIgniter4의 개발 환경 구축
    규정에 따라 개발 환경을 구축하세요.
    PHP/MySQL 개발 환경이 이미 있는 사람은Composier 명령을 사용하여 CodeIgniter4를 설치하십시오
    CodeIgniter 4.1의 설치 방법【2021년 최신 버전】
    대로 하세요.
    $ composer create-project codeigniter4/appstarter ci4app
    
    PHP 내장 서버를 사용하는 경우 다음 URL을 http://localhost:8080/로 교체하십시오.

    폴더 구성


    CodeIgniter4의 폴더는 다음과 같습니다.
    ci4app/
    ├── app/ ... アプリケーション
    │   ├── Common.php
    │   ├── Config/      ... 設定
    │   ├── Controllers/ ... コントローラ
    │   ├── Database/    ... データベース
    │   ├── Filters/     ... コントローラフィルタ
    │   ├── Helpers/
    │   ├── Language/
    │   ├── Libraries/
    │   ├── Models/      ... モデル
    │   ├── ThirdParty/
    │   └── Views/       ... ビュー
    ├── builds*       ... buildsコマンド
    ├── composer.json
    ├── composer.lock
    ├── env           ... 環境変数設定ファイルのサンプル
    ├── phpunit.xml.dist
    ├── public/ ... Web公開領域(ドキュメントルート)
    │   ├── favicon.ico
    │   ├── index.php
    │   └── robots.txt
    ├── spark* ... sparkコマンド
    ├── tests/ ... テストファイル
    │   ├── _support/
    │   ├── database/
    │   ├── session/
    │   └── unit/
    ├── vendor/   ... Composer管理
    └── writable/ ... 書き込み用フォルダ
        ├── cache/
        ├── debugbar/
        ├── logs/
        ├── session/
        └── uploads/
    

    Welcome 페이지 확인


    브라우저에서 액세스http://localhost/하면 Welcome 페이지가 표시됩니다.
    Welcome ページ その1

    호스트 컨트롤러


    Welcome 페이지를 처리하는 기본 컨트롤러는 app/Controllers/Home.php에 있습니다.
    Home Controller는 다음과 같습니다.
    <?php
    
    namespace App\Controllers;
    
    class Home extends BaseController
    {
        public function index()
        {
            return view('welcome_message');
        }
    }
    
    CodeIgniter4에서 컨트롤러 클래스 계승BaseController.
    CodeIgniter4 view() 방법으로 보기 파일 welcome_message.php 을 표시합니다.

    정적 페이지 표시


    View 파일 생성


    그럼 정적 페이지를 만들어서 보여 주세요.

    정적 페이지 파일


    다음 정적 페이지를 만듭니다.app/Views/pages/home.php
    <p>Views/pages/home.php</p>
    
    app/Views/pages/about.php
    <p>Views/pages/about.php</p>
    

    템플릿 파일


    머리글 및 바닥글에 사용할 템플릿 파일을 만듭니다.app/Views/templates/header.php
    <!doctype html>
    <html>
    <head>
        <title>CodeIgniter Tutorial</title>
    </head>
    <body>
    
        <h1><?= esc($title); ?></h1>
    
    app/Views/templates/footer.php
        <em>&copy; 2021</em>
    </body>
    </html>
    

    Pages 컨트롤러 제작

    app/Controllers/Pages.php.
    <?php
    
    namespace App\Controllers;
    
    class Pages extends BaseController
    {
        public function index()
        {
            return view('welcome_message');
        }
    
        public function view($page = 'home')
        {
            if (! is_file(APPPATH . 'Views/pages/' . $page . '.php')) {
                // Whoops, we don't have a page for that!
                throw new \CodeIgniter\Exceptions\PageNotFoundException($page);
            }
        
            $data['title'] = ucfirst($page); // Capitalize the first letter
        
            echo view('templates/header', $data);
            echo view('pages/' . $page, $data);
            echo view('templates/footer', $data);
        }
    }
    
    이렇게 하면 보기와 컨트롤러가 만들어진다.

    페이지 표시 확인

    http://localhost/pages/view 아래 내용을 방문할 때 app/Views/pages/*.php가 존재하면 이 페이지는 헤더와 꼬리표로 표시됩니다.
    아래와 같다.

  • http://localhost/pages/view의 경우 기본값home, app/Views/pages/home.php

  • http://localhost/pages/view/home의 경우app/Views/pages/home.php

  • http://localhost/pages/view/about의 경우app/Views/pages/about.php

  • http://localhost/pages/view/shop의 경우 해당 파일이 존재하지 않으므로 404

  • 라우팅 설정 추가

    app/Config/Routes.php를 열고 다음 줄을 추가합니다.
    --- a/app/Config/Routes.php
    +++ b/app/Config/Routes.php
    @@ -33,6 +33,8 @@ $routes->setAutoRoute(true);
     // route since we don't have to scan directories.
     $routes->get('/', 'Home::index');
     
    +$routes->get('(:any)', 'Pages::view/$1');
    +
     /*
      * --------------------------------------------------------------------
      * Additional Routing
    
    이렇게 하면 방문http://localhost/about할 때Pages를 컨트롤러view()로 연결하는 방법about.

    http://localhost/about에 액세스할 수 있습니다.
    CodeIgniter4 입문 공식 강좌 (2) DB 데이터 표시
    계속해.

    참고 자료

  • Build Your First Application — CodeIgniter 4.1.5 documentation
  • Static pages — CodeIgniter 4.1.5 documentation
  • 좋은 웹페이지 즐겨찾기