【テンプレート】処理と見た目を分ける方法
タイトルが少しわかりにくいがhtmlデータのレスポンスには2通りある。
■静的データ
サーバに整形されたhtmlデータがありそれをレスポンスで返す。
■動的データ
phpを使い、ユーザーからのリクエストによってレスポンスするhtmlのデータをサーバー上で整形してからレスポンスしている。
ロジック
・ざっくりいうと、htmlデータの整形には、【A】phpでデータを扱うファイルと【B】WEBデータを見た目をhtmlで整えるファイルが分かれており、URLで【A】にアクセスしたとき【A】のファイルが【B】のファイルを読み込み、【B】のファイルをレスポンスするという仕組みである。
※もちろんこの時、【A】ファイル内の変数や配列などのよって【B】内のhtml内の記述を少し作り直しているのだ。
require_once関数
青が緑を読み込むために、青ファイルにrequire_onceを記述する。
自動的に緑ファイルを読み込む(=見た目のファイルを返している)
【青ファイル】
<?php $message = "プレイヤーは戦った!"; $enemys = ['スライム','ドラゴン','ゾンビ','ゴブリン']; require_once 'attack.tpl.php'; ?>
【緑ファイル】
こちらは見た目ファイル。青ファイルにある変数や配列データは使えるのでところどころにphpがある。
<!DOCTYPE html> <html lang='ja'> <body> <h1>戦いの結果</h1> <p><?= $message ?></p> <?php foreach($enemys as $enemy) { ?> <p><?= $enemy ?> . 'を倒した!'</p> <?php } ?> <p><a href='menu.php'>戻る</a></p> </body> </html>
【レスポンス】
プレイヤーは戦った!
ドラゴンを倒した!
'ゾンビを倒した!
ゴブリンを倒した!