ホームページ  >  記事  >  バックエンド開発  >  【オリジナル】Smarty 2+とSmarty 3+の比較(1):smartyの実行仕組み

【オリジナル】Smarty 2+とSmarty 3+の比較(1):smartyの実行仕組み

WBOY
WBOYオリジナル
2016-06-23 13:18:36917ブラウズ

smarty はバックエンド ロジックとフロントエンド スタイルを分離するテンプレート エンジンであり、ソース コードは PHP で書かれています。公式 Web サイトのアドレス: http://www.smarty.net/

最新バージョン 3.1 をダウンロードすると、マシンの Web ディレクトリにデモ フォルダーが作成され、シンプルな Smarty アプリケーションを実行できます。ドキュメントまたはデモの設定に従って、smarty を使用するのは非常に簡単です。

基本的なファイル ディレクトリとコードは次のとおりです。

templates と templates_c は重要な 2 つのフォルダー構成です。templates は HTML テンプレートのディレクトリであり、templates_c は HTML を実行可能な PHP ファイルにコンパイルするためのディレクトリです。

smarty には、assign と display の 2 つの基本関数があります。 assign はパラメータを渡すことです (正確には、フロント デスクが必要とするデータを集約し、それを k-v 形式の一意の配列に割り当てます)。display は検索することです。ページ表示( assign の配列を受け取り、配列データ表示ページを出力)。最終的に、smarty はコンパイルされた PHP ファイルを実行し、echo や foreach などの PHP のネイティブ関数と連携して、構文の出力内容を templates_c フォルダーの下に保存します。

smarty2+和smarty3+执行的基本机制如图:

より簡単なプロセスは次のとおりです:

コンパイルされたindex.tpl.phpファイル:

<html>  <head></head>  <body>    <?php      foreach($arr as $key=>$val){        echo "<p>".$key."--".$val."</p>";      }    ?>  </body>  </html>

最終的なindex.php実行可能ファイル:

$arr = array("name"=>"abc","tel"=>"2222","age"=>"2111");  //1、把html编译为PHP(省略掉复杂的smarty标签替换为PHP标签)  //2、省略掉中间复杂的编译文件命名、文件引入/写入和cache情况  //3、include 编译后的PHP文件,并执行,注意此时的$arr数组可以在index.tpl.php中使用输出  include "index.tpl.php";

ただし、2+と比較して、smarty3+のバージョンは「100%」です。新しい PHP 構文の観点から、またはコンパイルおよび実行パフォーマンスの観点から「書き換え」を行った場合、以下はそれぞれバージョン 2+ と 3+ で実行された公式デモの分析図です。左がバージョン 2.6.18、右がバージョンです。 3.1.30:

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。