レイアウトファイルとは、HTMLファイルの外側の記述。
各ページで共通に表示したい外枠の部分。
01: <!DOCTYPE html>
02: <html lang="ja">
03: <head>
04: <meta charset="<?= $charset ?>">
05: <base href="<?= $pageUrlFull ?>">
06: <title><?= $title ?></title>
07: <link rel="stylesheet" href="<?= $homeDir ?>/css_default/default.css">
08: <?= $css ?>
09:
10: <?= $header ?>
11:
12: </head>
13: <body>
14: <?= $contents ?>
15:
16: </body>
17: </html>
14行目の <?php echo $contents;?> にコンテンツが流し込まれて表示される。
この例では、1行目から13行目までと15行目から最後までが共通部分となる。
このレイアウトファイルを共通化することにより、デザイン等の変更が簡単になる。
そしてレイアウトファイルとCSSで自由にデザイン可能。
注意)最低ひとつは、レイアウトファイルがないと動かない。
あらかじめよく使う変数を用意。以下がよく使う変数の一覧
index.php を設置する場所を
ルートの場合:https://www.hoge.com/ と仮定、
サブディレクトリの場合:https://www.hoge.com/sub/ と仮定し、
test.html がリクエストされた場合を例とした。
| 変数名 | 説明 | ルートの場合 | サブディレクトリの場合 |
|---|---|---|---|
| $charset | 文字コード | UTF-8など | UTF-8など |
| $pageUrlFull | 表示されているファイルのURL | https://www.hoge.com/test.html | https://www.hoge.com/sub/test.html |
| $title | タイトル | ||
| $homeDir | ルートのディレクトリ | ブランク | /sub |
| $css | カレントディレクトリのCSSファイルのタグが挿入される | ||
| $header | カレントディレクトリのHEADERファイルが挿入される | ||
| $contents | リクエストされたファイルが挿入される |
以下のようなファイル構造の場合、
ルートディレクトリ ─┬─ index.php │ ├─ top.php │ ├─ layout ─── default.php(1) │ ├─ folder01 ─┬─ test01.html │ │ │ ├─ layout ─── default.php(2) │ │ │ └─ sub_01 ─── test02.html │ └─ folder02 ─┬─ test03.html │ └─ sub_02 ─── test04.html
カレントディレクトリのレイアウトディレクトリにレイアウトファイルがあれば、それを使う。なければ親のディレクトリを探すようになっている。