静的ページ¶
注:このチュートリアルでは、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>© 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()
メソッドに正しくルーティングされましたか? すごい!