PHPでプログラムとデザインを分ける書き方
フレームワークを使わない場合の書き方。
コンストラクタが長くなってきたらプライベートメソッドに切り分ける。
number_format()とかstr_replace()のような表示に関する処理はテンプレートの方に書く。
ただし複雑な処理はプログラムファイルの方に書く。
↓プログラム
<?php
require_once 'start.php'; // 初期処理。設定ファイルやオートローダを読み込む
new class()
{
public function __construct()
{
$data = [
'title' => 'タイトル',
'users' => User::where('age', '>', 30)->get(), // Eloquent的な何か
];
$this->print($data);
}
private function print($data)
{
extract($data);
require_once 'example.tpl.php';
}
};
↓テンプレート
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
<h1><?= $title ?></h1>
<table>
<tr>
<th>ID</th>
<th>名前</th>
<th>年齢</th>
<th>ポイント</th>
</tr>
<?php foreach ($users as $v) { ?>
<tr>
<td><?= $v->id ?></td>
<td><?= $v->name ?></td>
<td><?= $v->age ?></td>
<td><?= number_format($v->point) ?></td>
</tr>
<?php } ?>
</table>
</body>
</html>