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>