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 を試したことがある人なら、このテンプレートの影に気づくでしょう。