CodeIgniterのコントローラー、ビューのルーティング:サンプルアプリで学ぶ

このチュートリアルでは、次のトピックについて学習します。

  • ルーティング – ルーティングは、 URL リクエスト。ルーティングは URL 事前定義されたルートに対して。一致するルートが見つからない場合は、 CodeIgniterはページが見つからない例外をスローします。
  • コントローラ – ルートはコントローラーにリンクされています。コントローラーはモデルとビューを結合します。モデルからデータ/ビジネスロジックを要求し、ビューの表示で結果を返します。 URL ルートにマッチングされたデータは、コントローラーのパブリック関数に転送されます。この関数はデータソースやビジネスロジックと連携し、結果を表示するビューを返します。
  • ビュー – ビューはプレゼンテーションを担当します。ビューは通常、HTML、CSS、 Javaスクリプト。これは、Web ページをユーザーに表示する役割を担う部分です。通常、表示されるデータは、データベースまたはその他の利用可能なデータ ソースから取得されます。

新しいものを作成する方法 Codeイグナイタープロジェクト

Composerを使用して新しいプロジェクトを作成します。PHP組み込みサーバーを使用するので、次のような追加のソフトウェアは必要ありません。 アパッチ。このチュートリアルでは、 Windows オペレーティング システム。そのため、ドライブ C に Sites フォルダーを作成しました。適切なディレクトリを自由に使用できます。

コマンドライン/ターミナルを開き、次のコマンドを実行します。

cd C:\Sites

これから作成します CodeComposer を使用した Igniter プロジェクト。以下のコマンドを実行してください。

composer create-project CodeIgniter/framework ci-app

ここに、

  • 上記のコマンドは新しい CodeIgniterプロジェクトバージョン3を最新の安定版リリース、つまり3.1.9を使用してci-appディレクトリに配置します。

上記のコマンドの実行が完了すると、ターミナルに次のような結果が表示されるはずです。

新しいを作成します Codeイグナイタープロジェクト

次のコマンドを実行して、新しく作成されたプロジェクトディレクトリci-appを参照します。

cd ci-app

PHP 組み込み Web サーバーを起動しましょう

 php -S localhost:3000

ここに、

  • 上記のコマンドは、ポート 3000 で実行されている組み込み PHP サーバーを起動します。

ウェブブラウザを開いて、以下をご覧ください。 URL: http://localhost:3000/

次のページが表示されます

新しいを作成します Codeイグナイタープロジェクト

上記のページが表示されれば、インストールは完了です。 Codeイグナイター.

上記のWebページからわかるように、上に表示されているページはapplication/views/welcome_message.phpにあるビューによってレンダリングされ、責任のあるコントローラはapplication/controllers/Welcome.phpにあります。

Codeイグナイタールーティング

今のところ、私たちのアプリケーションには 1 つの機能しかありません URL これはホームページです。このセクションでは、ホームセクションをカスタマイズします。新しいものをいくつか作成します。 URLさまざまな要求に対応するもの。

ホームページのルートから始めましょう

以下のパスで示されているルート ファイルを開きます。

application/config/routes.php

次のコンテンツが表示されるはずです

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

ここに、

  • $route['default_controller'] = 'ようこそ'; URIリクエストに応答するデフォルトのコントローラを定義します
  • $route['404_override'] = ”; このルートを使用すると、404 エラー用のカスタム ルートを定義できます。404 エラーは、ページが見つからない場合に発生します。 CodeIgniterにはエラーに対するデフォルトのハンドラーが用意されていますが、必要に応じて独自のハンドラーを定義することもできます。
  • $route['translate_uri_dashes'] = FALSE; このオプションを使用すると、ハイフンをアンダースコアに変換できます。このオプションについては、ルートの仕組みについて説明する際に説明します。 Code点火装置。

それでは、私たちが開いたときに見たホームページを表示する役割を担うコントローラーメソッドを見ていきましょう。 URL http://localhost:3000/ Webブラウザで。

次のファイルを開く

application/controllers/Welcome.php

次のコードが表示されるはずです

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

	public function index()
	{
		$this->load->view('welcome_message');
	}
}

ここに、

  • Defined ('BASEPATH') OR exit('No direct script access allowed'); は、index.php ファイルを経由せずにコントローラー クラスに直接アクセスすることを防ぎます。MVC パラダイムでは、すべてのリクエストに単一のエントリ ポイントがあることを覚えておいてください。 CodeIgniter の index.php です。このコードは、index.php を経由しないすべてのリクエストをブロックします。
  • class Welcome extends CI_Controller {…} 親クラス CI_Controller を拡張するクラス Welcome を定義します
  • public functionindex() は、ホームページを開いたときにデフォルトで呼び出されるパブリック関数を定義します。
  • $this->load->view('welcome_message'); この行はビュー welcome_message をロードします。 ファイル welcome_message は、ディレクトリ application/views/welcome_message.php にあります。

これまでのところ、箱から出てくるものだけを調べてきました。 CodeIgniter、それでは変更を加えてみましょう。ホームページを作成し、デフォルトのページを置き換えます。

application/views/home.php に新しいファイルを作成します。

home.phpに次のコードを追加します。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Hello CodeIgniter!</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
    </head>
    <body>
        <section class="section">
            <div class="container">
                <h1 class="title">
                    CodeIgniter Hello World
                </h1>
            </div>
        </section>
    </body>
</html>

ここに、

上記の HTML コードは、ビルマ SSS フレームワークと CDN ネットワークからのフォントをロードし、非常に基本的な HTML ドキュメントを作成します。 Burma CSS フレームワークの非常に単純な CSS ルールを適用します。

以下を開きます URL ブラウザで: http://localhost:3000/

次のようなものが見えるはずです

Codeイグナイタールーティング

無事、ホームページが正常に変更されました。 次に、ルートを定義しましょう。 アプリケーションが会社概要ページを表示できる必要があると仮定しましょう。

ルートを作成する

ルート ファイル application/config.routes.php を開きます。

次のルートを追加します

$route['about-us'] = 'welcome/about_us';

ここに、

  • 訪問者が URL /about-us、私たちは指示しています CodeIgniter はコントローラー Welcome を探し、メソッド about_us を実行します。

コントローラーを作成する

ここでコントローラーのメソッドを定義しましょう。

application/controllers/Welcome.php を開きます

次のメソッドを追加します

public function about_us(){
            $this->load->view('about_us');
        }

ここに、

  • 上記のコードは関数 about_us を定義し、ビュー about_us をロードします。

ビューの作成

上のセクションで参照したビューを作成しましょう。

application/views/about_us.php に新しいファイル about_us.php を作成します。

次のコードを追加します

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>About CodeIgniter!</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
    </head>
    <body>
        <section class="section">
            <div class="container">
                <h1 class="title">
                    About us yap...                
                </h1>
            </div>
        </section>
    </body>
</html>

準備完了です。以下を開いてください。 URL ウェブブラウザで: http://localhost:3000/index.php/about-us

次のページが表示されます

ビューを作成する Codeイグナイター

上記のページが表示されている場合は、おめでとうございます。シンプルなアプリケーションの作成に成功しました。 Code点火装置。

製品概要

このチュートリアルでは、 CodeIgniterアプリケーション。ルートとその定義方法、コントローラーとルートリクエストに応答するメソッドの作成方法について学習し、ユーザーがリソースをリクエストした際に返されるシンプルなビューを作成しました。