1. スマーティについて
PHP を使用して Web プログラミングを行う場合、問題の 1 つは、php ファイルが html コードと同じくらい長い php コードと混在する可能性があることです。ある時点で、それはあまりきれいではなく、安全でもありません。そして、その作業をバックエンド プログラマーとフロントエンド プログラマーに分けて行うことはできません。したがって、開発プロセスを適切に整理して維持するには、php ロジックを html コードから分離するツールが必要です。そこで、Smarty が登場します。
Smarty は、PHP で書かれた Web テンプレート システムです。 Smarty は主に懸念事項を分離するためのツールとして宣伝されています。[1] Smarty は、区画化を簡素化し、Web ページのプレゼンテーションをバックエンドとは別に変更できるようにすることを目的としています。理想的には、これによりソフトウェアのメンテナンスに関連するコストと労力が軽減されます。
Smarty は、ドキュメント内に特別な Smarty タグを配置することによって Web コンテンツを生成します。これらのタグは処理され、他のコードに置き換えられます。タグは、テンプレートの区切り文字で囲まれた Smarty のディレクティブです。これらのディレクティブは、ドル記号 ($) で示される変数、関数、論理ステートメントまたはループ ステートメントにすることができます。 Smarty を使用すると、PHP プログラマーは Smarty タグを使用してアクセスできるカスタム関数を定義できます。
2. Smarty をセットアップする
/*
* 2013 年 1 月 10 日に作成
* 著者: ニック
* 機能: Smarty への接続
*/
include_once("smarty/Smarty.class.php");
$smarty = 新しい Smarty(); //smarty の新しいインスタンス
$smarty->config_dir = "smarty/"; //smarty の設定情報
$smarty->キャッシュ = false; // キャッシュを使用するかどうか
$smarty->template_dir = "./templates"; // テンプレートを保存するフォルダーを設定します
/**
* Smarty は、テンプレートと PHP コンテンツを混合ファイルに自動的にコンパイルできます
* templates_C フォルダーに保存されます
*/
$smarty->compile_dir = "./templates_c"; //コンパイルされたファイルを保存するフォルダー
$smarty->cache_dir = "./smarty_cache"; // キャッシュ ファイルを保存
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";
?>
コードによれば、対応するファイルを保存するために使用される 3 つのフォルダーも作成する必要があります。 templates フォルダーは、フォルダーの名前が示すように HTML ファイルを保存するために使用されます。これらはテンプレートであり、プロジェクトのさまざまなスタイルを表示するために "$smarty->display()" によって呼び出されます。 tempates_c は、コンパイルされたファイルを保存するために使用されます。 php ファイルとテンプレートは別のファイルに記述されますが、php コンパイラーはテンプレートと php コンテンツを混合ファイルにコンパイルし、templates_c フォルダーに保存できます。 Smarty_cache はキャッシュ ファイルを保存するために使用されます。
ステップ3: PHPコンテンツ(a.php)を書く
[php] plaincopyprint を表示しますか?
/*
* 2013 年 1 月 10 日に作成
* 著者: ニック
* 機能:
*/
include("SmartyCon.php");
$name = "php100";
//$smarty->assign("title",$name); // php 変数をテンプレートのタブに割り当てます
//$smarty->display("a.html"); // テンプレートを表示
$nameTwo[] = array("name"=>"ジミー","city"=>"モントリオール");
$nameTwo[] = array("name"=>"tim","city"=>"無錫");
$nameTwo[] = array("name"=>"サム","city"=>"ニューヨーク");
$nameTwo[] = array("name"=>"ジョン","city"=>"サンフラン");
$nameTwo[] = array("name"=>"ユリ","city"=>"ロイラ");
$title= array("a"=>"名前","b"=>"ニュース","c"=>"日付","d"=>"now()");
$smarty->assign("title",$nameTwo); // php 変数をテンプレートのタブに割り当てます
$smarty->assign("ab",$title);
$smarty->display("a.html"); // テンプレートを表示
?>
上記のコードが示すように、$smarty->assign("ab",$title) を使用して、php 変数を Smarty 変数に割り当てることができます。次に、$smarty->display() を使用して、対応するテンプレートを表示します。テンプレート ファイルでは、ここで php コンテンツの値を表示するために、同じ割り当てられたファイルを使用する必要があります。たとえば、テンプレートに $title の「ニュース」を表示したい場合です。 .html ファイルでは、「{$ab[b]}」を使用する必要があります
ステップ4: テンプレートファイル(a.html)を書く
[html] plaincopyprint を表示しますか?
{$ab["b"]}
{$title}
{セクション名=リストループ=$title}
{$title[リスト].name} - {$title[リスト].city}
{/セクション}