0

私は、Mustache.php で一般的なことを行う方法を理解しようと取り組んでいます。この時点で、テンプレート内のネイティブ php switch ステートメントを置き換えようとしています。

'A'アクティブなどの「ステータス」フラグを指定すると、

などの表示オプションのセットA => Active, I => Inactive, P=>Pending, D=>Deleted

テンプレートのデータを変更して、Mustache.php で適切な表示文字列を作成するにはどうすればよいですか?

テーブルのデータ例:

$users = array(
array('username'=>'william', 'status'=>'A', 'date_created'=>'7-01-2012'),
array('username'=>'john', 'status'=>'P', 'date_created'=>'5-17-2012')
);
4

1 に答える 1

2

Mustache の要点は、テンプレートをすべてのロジックから削除することです。Mustache テンプレートはロジックレスであるべきです。これは、新規参入者にとってはまったく異なる、紛らわしい方法論です。

$users問題を解決するには、事前に配列を再処理して、Mustache テンプレートが必要とするすべてのものを含める必要があります。たとえばstatusフィールドswitchステートメントが人間が読める状態を表示することを目的としている場合、View クラスは次のようになります。

class View_User {

    public $_users;

    public function users()
    {
        $users = array();
        foreach ($this->_users as $user)
        {
            $user->status_label = // Use your 'switch' statement here
            $users[] = $user;
        }
        return $users;
    }
}

次に、Mustache テンプレートで行う必要があるのは、{{status_label}}次のような出力です。

<ul>
    {{#users}}
        <li>Status: {{status_label}}</li>
    {{/users}}
</ul>

View クラスにロジックを含め、Mustache テンプレートをロジックなしのままにします。このように分離された UI コードは、保守と後でのリファクタリングを非常に簡単にします。

于 2013-01-10T17:34:11.017 に答える