ここに新規--------smarty
Smarty
Day01-----smarty の使用
機能: php html、プログラム、アートの分離
使用法:
1. ソースコードパッケージをダウンロード
2. ディレクトリ構造
libs
ソースコードファイル
Smarty.class.php
template //テンプレート ファイル html ファイル
template_c //プログラム実行プロセス中に自動的に生成されるテンプレート コンパイル ファイル
3. インスタンス化
require "Smarty.class.php" ;
$smartyOb=new Smarty();
4. 設定
どのディレクトリにテンプレートが含まれているかを Smarty に伝えます html
$smartyOb->setTemplateDir(path);
どのディレクトリが存在するかを Smarty に伝えますコンパイルされたファイルはどこに配置されますか?
$smartyOb->setCompileDir(path)
5. テンプレートを表示します
$smartyOb->display("Template name and path");
方法テンプレートに渡す値を指定します
$smartyOb->assign('name on template', 渡された変数);
テンプレートの呼び出し方法
テンプレート タグ
{$name}
配列
{$配列名.subscript}
二次元配列
array(
0=>array('title'=>'t1','pubtime'=>1234567890,'著者' =>'xiaoli'),
1=>array('title'=>t2','pubtime'=>1334567890,'author'=>'xiaoli'),
array ('title'=>'t3','pubtime'=>1434567890,'author'=>'xiaoli'),
array('title'=>'t4','pubtime' => ;1534567890,'author'=>'xiaoli'),
)
配列を走査
{変数名としての各配列名}
{$変数名.タイトル}
{/foreach }
添字値
<[email protected]}> <[email protected]}>
ループ数
<[email protected]}>
現在、何回サイクルされているか
<[email protected]}>
最初のサイクルかどうか
<[email protected]}>
最後のサイクルかどうかサイクル
< [email protected]}>
ケース:
インターレース背景色の変更を実装する
<{if 条件}>
コード
<{/if }>
演習:
最後の行を除く各 li に下線 (破線) を付けます
内容を理解します:
<{セクション名=s1 ループ=走査する配列} >
<{$Iterated array[s1].Subscript}>
<{/section}>
属性:
<{$smarty.section.s1.total} >
<{$smarty.section.s1.index}>
<{$smarty.section.s1.iteration}>
<{$smarty.section.s1.last }> ;
<{$smarty.section.s1.first}>
演習:
セクションを使用して、さまざまなインターレース背景色を実現します
可変レギュレーター
テンプレートタグ区切り文字の仕様:
<{}>
$smartyOb->left_delimiter="<{";
$smartyOb->right_delimiter="}>";
day02---------、day01 の内容を復習し、新しい知識を広げます
Smarty
1. Smarty、場所PHP メイン プログラム内で
2. 設定
$smartyOb->setTemplateDir()
$smartyOb->setCompileDir()
$smartyOb->left_delimiter()
$smartyOb ->right_delimiter()
3. テンプレートに値を渡す
$smartyOb->assign("テンプレート変数名", variable);
4. テンプレートを表示
$smartyOb->display (パス);
{$name}
{$array.subscript}
{変数としての foreach 配列名}
{$変数名}
{/foreach}
タグ属性:
[email protected]}
[email protected]}
[email protected]}
[email protected]}
[email protected]}
[email protected] ]}
{if 条件}
{else}
{/if}
変数レギュレーター:
{最初のパラメーター|関数名: 2 番目のパラメーター: ... .}
記事詳細ページ:
02_detail.php?id=5
1. Smarty の設定
2. 記事 ID の受信
3. pdo のインスタンス化
4. SQL ステートメントの記述
5. 実行
6. データの取得
7. 値をテンプレートに渡す
8. テンプレートの表示
9. テンプレート タグを設定し、メイン プログラムから渡されたタグを使用します Data
ページ分割
{include file="テンプレートへのパス"}
関数の登録
function fun1(){
return 'abc';
}
$smartyOb- > ;registerPlugin("関数","テンプレート関数名","登録された関数名");
テンプレートの呼び出し:
{テンプレート関数名=値 名前=値... .}
パラメータを渡すにはどうすればよいですか? ? ?
1. パラメーターの数は最大 2 つです。
最初のパラメーターは、テンプレートに渡されたすべてのパラメーターを受け取ります。
2 番目のパラメーターは、現在の Smarty オブジェクトを受け取ります。
キャッシュ
データベース内のデータはキャッシュされます。
利点: mysql サーバーの負荷を軽減します
1. キャッシュ ファイルの保存ディレクトリを指定します
$smartyOb->setCacheDir(ROOT."day02/cache")
2. キャッシュを有効にします
$smartyOb->caching=true;
3. キャッシュのライフサイクルを指定します。
$smartyOb->cache_lifetime=100;//秒
関数: キャッシュ ファイルが存在し、有効であるかどうかを判断します
$smartyOb->isCached("テンプレート名とパス",id)
$smartyOb->display("テンプレート名とパス",id);