レイアウトの作成 (2/6)
作成:2015-11-28 08:41
更新:2015-11-28 08:41
更新:2015-11-28 08:41
■レイアウト・テンプレートの基本形
では、レイアウトのテンプレートはどのような形で作成されているのでしょうか。default.ctpを開いてみると、どのような形で記述されているのか、その内容を知ることができます。
余計な部分を省略し、もっとも基本的なコードの形に整理すると、下のリスト欄のようなものになるでしょう。簡単にポイントを開設しておきましょう。
・タイトルの出力
・各種ヘッダータグの出力
・コンテンツの出力
見ればわかるように、出力関係はすべて「fetch」というメソッドを使っています。タイトルやコンテンツ、また各種のヘッダー用タグなどは、プログラマがコントローラー側で値を設定するようなものではありません。CakePHP3のシステムによって用意される値です。こうしたものは、基本的にfetchを使って出力がされます。
余計な部分を省略し、もっとも基本的なコードの形に整理すると、下のリスト欄のようなものになるでしょう。簡単にポイントを開設しておきましょう。
・タイトルの出力
<?= h($this->fetch('title')) ?>タイトルは、fetchメソッドを使い、titleという値を出力しています。ページのタイトルは、このように取得します。
・各種ヘッダータグの出力
echo $this->fetch('meta');ヘッダーでは、<meta>タグやCSS、スクリプトなどのタグを自動出力するための処理が用意されてます。これらは、CakePHP3のシステムの状況などに応じて必要なタグを出力します。
echo $this->fetch('css');
echo $this->fetch('script');
・コンテンツの出力
<?= $this->fetch('content') ?>コンテンツは、fetchメソッドを使い、contentという項目の値として取り出し出力します。これで、読み込んだテンプレートのレンダリング結果がここに書きだされます。
見ればわかるように、出力関係はすべて「fetch」というメソッドを使っています。タイトルやコンテンツ、また各種のヘッダー用タグなどは、プログラマがコントローラー側で値を設定するようなものではありません。CakePHP3のシステムによって用意される値です。こうしたものは、基本的にfetchを使って出力がされます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<!DOCTYPE html> <html lang="en"> <head> <title><?= h($this->fetch('title')) ?></title> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> <?php echo $this->fetch('meta'); echo $this->fetch('css'); echo $this->fetch('script'); ?> </head> <body> <div id="header"> <div id="menu">...</div> </div> <?= $this->fetch('content') ?> <div id="footer">...</div> </body> </html>
※関連コンテンツ
「初心者のためのCakePHP3 プログラミング入門」に戻る