12月 21, 2021

静的ページ¶

注:このチュートリアルでは、CodeIgniterをダウンロードし、開発環境にフレームワークをインストールしたことを前提としています。

最初に行うことは、ページを処理するコントローラを設定することです。 コントローラは、単にデリゲートを支援するクラスですwork.It あなたのwebアプリケーションの接着剤です。

たとえば、次のような呼び出しが行われたときには、次のようになります。:

“news”という名前のコントローラがあると想像するかもしれません。 ニュースで呼ばれるメソッドは”最新”になります。 ニュースメソッドのジョブは、10のニュース項目をグラフ化し、ページ上にレンダリングすることができます。 非常に多くの場合、MVCでは、一致するURLパターンが表示されます:

URLスキームが複雑になると、これが変更される可能性があります。 しかし、今のところ、これは私たちが知る必要があるすべてです。

application/controllers/Pagesにファイルを作成します。phpで以下のコードを記述します。

<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}

Pagesという名前のクラスを作成し、$pageという名前の引数を受け入れるviewメソッドを作成しました。 PagesクラスはCI_Controllerクラスを拡張しています。 これは、新しいpagesクラスがCI_Controllerクラス(system/core/Controller)で定義されているthemethodsと変数にアクセスできることを意味します。php)。

コントローラは、あなたのwebアプリケーションへのすべての要求の中心になるものです。 非常に技術的なCodeIgniterの議論では、それはおそらくスーパーオブジェクトと呼ばれています。 他のphpクラスと同様に、コントローラ内では$thisと参照します。 $thisを参照すると、ライブラリ、ビューをロードし、一般的にフレームワークをコマンドする方法があります。

最初のメソッドを作成したので、基本的なpagetemplatesを作成します。 ページのフッターとヘッダーとして機能する二つの”ビュー”(ページテンプレート)を作成します。

application/views/templates/headerでヘッダーを作成します。phpとaddthe次のコード:

<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>

ヘッダーには、メインビューを読み込む前に表示したい基本的なHTMLコードと見出しが含まれています。 また、コントローラで後で定義する$title変数も出力します。次に、application/views/templates/footerにフッターを作成します。次のコードを含むphp:

 <em>&copy; 2015</em> </body></html>

コントローラへのロジックの追加¶

以前は、view()メソッドを使用してコントローラを設定しました。 Methodは、ロードするページの名前である1つのパラメータを受け取ります。 静的ページテンプレートは、application/views/pages/ディレクトリにあります。

そのディレクトリに、homeという名前の2つのファイルを作成します。phpと約。php。これらのファイル内に、テキストを入力して保存します。だが、特に国連の元、”こんにちは。”.

これらのページをロードするには、requestedpageが実際に存在するかどうかを確認する必要があります:

public function view($page = 'home'){ if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); } $data = ucfirst($page); // Capitalize the first letter $this->load->view('templates/header', $data); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer', $data);}

これで、ページが存在すると、ヘッダーとfooterを含めてロードされ、ユーザーに表示されます。 ページが存在しない場合は、”404ページが見つかりません”というエラーが表示されます。

このメソッドの最初の行は、ページが実際に存在するかどうかをチェックします。PHPのネイティブのfile_exists()関数は、ファイルが期待される場所にあるかどうかを確認するために使用されます。 show_404()は、既定のエラーページをレンダリングする組み込みのCodeIgniterfunctionです。

ヘッダーテンプレートでは、$title変数を使用してページタイトルをカスタマイズしました。 Titleの値はこのメソッドで定義されていますが、値を変数に割り当てる代わりに、$data配列内のtitle要素に割り当てられます。

最後に行う必要があるのは、表示される順序でビューをロードすることです。 view()メソッドの第二のパラメータは、ビューに値を渡すために使用されます。 $data配列内の各値は、キーの名前を持つ変数に割り当てられます。 したがって、コントローラの$dataの値は、ビューの$titleと同等です。

ルーティング№

コントローラが機能しています! ページを表示するには、ブラウザをindex.php/pages/viewにポイントします。 index.php/pages/view/aboutにアクセスすると、aboutページが表示され、ヘッダーとフッターが再び表示されます。

カスタムルーティングルールを使用すると、任意のURIをanycontrollerおよびmethodにマップし、通常の規則から解放することができます:http://example.com///

そうしよう Application/config/routesにあるルーティングファイルを開きます。phpと次の二つの行を追加します。$route配列内の任意の要素を設定する他のすべてのコードを削除します。

$route = 'pages/view';$route = 'pages/view/';

CodeIgniterは、そのルーティングルールを上から下に読み取り、最初の一致するルールにルーティングします。 各ルールは、スラッシュ(右側)で区切られたコントローラとメソッド名にマップされた正規表現(左側)です。 要求が入ると、CodeIgniterはfirstmatchを探し、適切なコントローラとメソッド、おそらくwithargumentsを呼び出します。

ルーティングの詳細については、URI Routingdocumentationを参照してください。

ここで、$route配列の2番目のルールは、ワイルドカード文字列(:any)を使用するすべての要求に一致します。 そして、パラメータをview()クラスのPagesメソッドに渡します。

今すぐindex.php/aboutにアクセスしてください。 Pagesコントローラのview()メソッドに正しくルーティングされましたか? すごい!

コメントを残す

メールアドレスが公開されることはありません。