Posted on

CodeIgniterのlayout libraryを使ってみる

@localdisk の作成された layout library を使ってみました。すいません、ただそれだけです。layout library の記事を見て頂ければほとんどわかる内容ですが、通常(あくまで僕なりの)の書き方との違いとか書きました。

まずは、ライブラリとなる Layout.php を設置します。
application/libraries/Layout.php

次にテンプレートとなる main.php を設置します。
application/views/layout/main.php

で、呼び出すコントローラ側に以下のように記載します。
今までの書き方はこうでした。$dataに出力したい情報(動的データ)を格納し、viewのロード時に渡します。
[cc lang=”php”]
$data[‘header_title’] = ‘ヘッダーのタイトル’;
$data[‘content_title’] = ‘タイトル’;
$data[‘content’] = ‘ここは本文ですよ’;
$this->load->view(‘layout/main’, $data);
[/cc]

ライブラリ適用後はこのようになります。
layoutライブラリをロードして(または application/config/autoload.php で事前にロードしたらスッキリしますね)あとはメソッドチェーンで1行書くだけ。
[cc lang=”php”]
$this->load->library(‘layout’);
$this->layout->write(‘header_title’, ‘ヘッダーのタイトル’)->write(‘content_title’, ‘タイトル’)->write(‘content’, ‘ここは本文ですよ’)->render();
[/cc]

なるほど、きれいですね。この場合は layout/main だけが共通ですが、共通レイアウトが複数ある場合どうすれば良いかなとか思いましたが深く追求せず。

コメントを残す