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

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

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

新しい CodeIgniter プロジェクトを作成する方法

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

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

cd C:\Sites

Composerを使用してCodeIgniterプロジェクトを作成します。次のコマンドを実行します。

composer create-project CodeIgniter/framework ci-app

ここに、

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

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

新しい CodeIgniter プロジェクトを作成する

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

cd ci-app

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

 php -S localhost:3000

ここに、

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

Web ブラウザを開き、次の URL を参照します。 http://localhost:3000/

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

新しい CodeIgniter プロジェクトを作成する

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

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

CodeIgniter ルーティング

現時点では、アプリケーションにはホームページである URL が XNUMX つだけあります。 このセクションでは、ホームセクションをカスタマイズします。 さまざまなリクエストに応答する新しい 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; このオプションを使用すると、ダッシュをアンダースコアに変換できます。 このオプションについては、CodeIgniter でルートがどのように機能するかを説明するときに説明します。

次に、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('直接スクリプト アクセスは許可されません'); これは、index.php ファイルを経由せずにコントローラー クラスに直接アクセスすることを防ぎます。 MVC パラダイムでは、すべてのリクエストには XNUMX つのエントリ ポイントがあり、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/

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

CodeIgniter ルーティング

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

ルートを作成する

ルート ファイル 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>

準備は完了です。Web ブラウザーで次の URL を開いてください。 http://localhost:3000/index.php/about-us

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

CodeIgniter でビューを作成する

上記のページが表示された場合は、CodeIgniter で単純なアプリケーションが正常に作成されたことになります。

まとめ

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