PHP テンプレートに関しては、言うは易く行うは難しです。おそらくランダムで 20 個以上の選択肢があり、pear だけでも 5 つの異なるテンプレートが含まれており、これは本当に頭の痛い問題です。
他人の意見に従って、これは良い、あれは悪いと言うのではなく、テンプレートを選択する前に、まずそのテンプレートの本当の目的を理解したほうがよいでしょう。 簡単に言えば、テンプレートの主な目的はチーム作業です。機能には主に 2 つの方法があります:
1. HTML と PHP を分離することで、Web デザイナーと PHP プログラマーの協力がより快適になります。
2. 表示ロジックとトランザクションロジックを分離することで、コアトランザクションロジックの変更やアプリケーションの拡張がより簡単かつ柔軟になり、プログラマー間の協力がより快適になります。 (この点は人々に無視されたり誤解されたりすることがよくあります。彼らは常に HTML から PHP を取り出すことを表示ロジックとトランザクション ロジックの分離と呼ぶと考えています。これが事実であれば、そもそもなぜ PHP と HTML を一緒に混ぜる必要があるのでしょうか?)
検索このテンプレートの本当の意味を明らかにする 目的が何であれ、正しい選択をするのが簡単になります。
あなたが唯一の PHP プログラマーであるが、他の Web デザイナーと協力する必要がある場合は、HTML と PHP を分離できるテンプレートである phplib (現在は Pear http://pear.php .net に統合されているようです) を選択してください。 /package/HTML_Template_PHPLIB) や
FastTemplate は非常にシンプルで使いやすいものです。
Web サイトのインターフェイスが醜く、主にプログラマーによって完成されるが、機能がより複雑で強力な拡張機能が必要で、表示ロジックを含むさまざまなレベルを分離する必要がある場合は、特別なものを使用せず、PHP 自体が最高のテンプレート。この場合、プログラムを非常に慎重に設計する必要があり、PHP と HTML ではなく、ビジネス ロジックとプレゼンテーション ロジックを分離することを常に忘れないでください。これが、私が Smarty のようなものに常に非常に抵抗してきた理由です。Smarty の構文はあまりにも複雑かつ強力で、ほとんどスクリプト言語を再発明したようなものだからです (PHP プログラマーでさえも学び直す必要があります)。さらに不可解なのは、このスクリプトが強力であればあるほど、ビジネス ロジックとプレゼンテーション ロジックを簡単に混合して、テンプレートの本来の意図を破壊してしまうことです。
HTML と PHP を分離して、より優れたビジュアルデザインを実現したいが、システム全体に、複雑な構文を学習することなく html、xml、および wml のさまざまなインターフェイスに適応できる非常に強力な拡張機能を持たせたい場合。詳細 稼働効率が高い場合、これは非常に難しい問題です。悪いニュースは、そのような要件を実際に満たすことができる成熟したテンプレートが現在存在しないことです。良いニュースは、Zope または ColdFusion を試してみると、このテンプレートの影が見つかるでしょう。 (wact http://wact.sourceforge.net/ と phptal http://phptal.sourceforge.net/ はこの方向で開発中であり、非常に有望であるはずです)。