PHP でのテンプレートの使用方法
Jun 13, 2016 pm 12:28 PM
なぜ FastTemplate を使用する必要があるのか??疑問に思われるかもしれません。
?サイト全體の外観を數(shù)秒で変更できます
?抽象的なプログラミング、ジャンク HTML コードは不要
?デザイナーはすべての「わかりにくい」コードを気にする必要はありません
?驚くほど高速
?古いテンプレートの再利用が容易 (通常のフォーム用)
FastTemplate は、同じ名前の Perl パッケージから派生しています (CPAN にあります)。 PHP 版はホームページからダウンロードできます (このサイトのダウンロード アドレスは http://www.phpe.net/downloads/1.shtml)。必要なのはクラス ファイル (class.FastTemplate.php) の 1 つだけです。
まず、テンプレートを使用してページを生成することと、単に echo や print でページを出力することの違いについて説明します。
単純に echo/print メソッドを使用することは、短いスクリプトを作成するのには適していますが、整理やカスタマイズを改善するのには役立ちません。一方、テンプレートを使用すると、パラメーターを変更するだけで、
多言語サイトを作成できます。彼らはあなたに、自分がしなければならないことにもっと気を配るよう促すことができます。
コーディングを開始する前に、考えることを恐れないでください。時間はかかるかもしれませんが、プロジェクトが成長するにつれてコストは回収されます。
では、FastTemplate を使用するにはどうすればよいでしょうか?まず、単純な呼び出しを行う必要があります:
ディレクトリをパスに渡します。テンプレートファイルが保存される場所。パラメータの割り當て、ページの生成などに使用できるオブジェクトを返します。
FastTemplate は、大きなページが多數(shù)の小さな部分で構(gòu)成されているという前提に基づいています。各パーツには一意の
名前が付いています。最も小さな部分は、それを一意の名前を持つ通常のテキスト文字列に割り當てることです。これは、
$tpl->assign(NAME, "text");
?> によって実行できます。これで、テンプレートの 1 つに {NAME} が含まれている場合、FastTemplate は
の意味を認識します。
さらに、FastTemplate は、テンプレートを呼び出す方法を知る必要があります。連想
配列を define() ?> に渡してヒントを與える必要があります。
以下は引用內(nèi)容です:
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl " ));
?>
これらの割り當てにより、foo と bar にそれぞれ異なるファイル (foo.tpl と bar.tpl という名前) が與えられます。
次に、FastTemplate でテンプレート foo 內(nèi)のすべての {MACROS} を?qū)潖辘工雮帳酥盲瓝Qえます。コマンド
を発行すると、引用された內(nèi)容は次のようになります。
$tpl->parse(PAGECONTENT, "foo");
を達成するために。このコマンドは、テンプレート「foo」のコンテンツを PAGECONTENT に割り當てます。もちろん、テンプレート バーはメイン ページ定義であり、FastTemplate で
{PAGECONTENT} マクロを置き換える必要があるため、まだ完了していません。また、次のように PAGETITLE に値を割り當てる必要があります。
以下は引用された內(nèi)容です:
$tpl->assign(PAGETITLE, "FooBar test"); >$tpl ->parse(MAIN, "bar");
簡単ですね。 $tpl->FastPrint(MAIN);
?>
次の 3 つのファイルは、実際の演習の詳細な説明を示しています。実生活でこのテクノロジーがなかったらどうやって生きていけばいいのかわかりません --
より短い時間でより多くのことができるので、デザイナーは満足し、上司は笑顔になるでしょう。
以下は引用された內(nèi)容です:
bar.tpl
{PAGETITLE} H1>
{PAGECONTENT}
foo.tpl
何も行われませんでした。
以下は引用された內(nèi)容です:
demo.php3
include "class.FastTemplate.php3";
$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl")); >
$tpl->assign(NAME, "me");
$tpl->assign(PAGETITLE, "ようこそ!"); > $tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "bar");
$tpl->FastPrint ( MAIN);
?>
テーブル全體を作成する
単一行のテンプレートを使用してテーブル全體を生成する方法を示す短い例も作成しました。 HTML ドキュメントを直接変更する必要がないため、これは機能します。
すでに定義されている一意の名前にテンプレートのコンテンツを追加して、HTML テーブルを作成します。これは、
$tpl->parse() を呼び出すときにテンプレート名の前に「.」を追加することで実現(xiàn)できます。 // テンプレート foo のコンテンツを TPL1 に割り當てます。
$tpl->parse(TPL1, "foo");
// テンプレート bar のコンテンツを TPL1 の後に追加します。コンテンツ
$tpl->parse(TPL1, ".bar");
page.tpl
引用されたコンテンツの場合:
フィーチャーワールド - {PAGE_TITLE}
;
{PAGE_TITLE}
>
以下は引用內(nèi)容です: ;
名前
{TABLE_ROWS}
table_row.tpl
以下は引用內(nèi)容です:
{FILENAME} {FILESIZE}
yad.php3
引用內(nèi)容:
include "class.FastTemplate.php3";
function InitializeTemplates() {
global $tpl;
$tpl( " .");
$tpl->define( array( page =>gt; "page.tpl" ,
table =>gt; "table.tpl",
table_row => "table_row.tpl" " ) );
}
function ReadCurrentDirectory() {
global $tpl ;
$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, filesize($filename)); parse(TABLE_ROWS, ".table_row");
}
closedir($handle);
$tpl->parse(PAGE_CONTENT, "テーブル");
function PrintPage($title) {
global $tpl;
$tpl->assign(PAGE_TITLE, $title); , "ページ");
$tpl->FastPrint(FINAL);
InitializeTemplates();
ReadCurrentDirectory();
Printpage( "さらに別のデモ" );
?>
スピード ディスカッション
「すべてが素晴らしい」とあなたは言うかもしれません。しかし、サイトの速度には影響しないのでしょうか? " www~
いいえ、あなたの Web サイトはおそらく速くなります。単純な理由の 1 つは、プログラマーであるあなたはアプリケーションの設計とコードの記述に関心があるため、コードが速くなります。効率が良く、処理が簡単で速くなります。同じタスクなので、プロジェクトで FastTemplate の使用を検討する必要がある理由のリストに別の理由を追加することもできます。
既存の Web サイトを変換するだけであれば、パフォーマンスが向上する可能性があります。この場合、FastTemplate はすべてのマクロに正規(guī)表現(xiàn)を使用し、各正規(guī)表現(xiàn)は 1 回だけコンパイルされ、速度への影響は無視できるため、PHP で正規(guī)表現(xiàn)バッファリングを使用することをお勧めします。
このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
ホットAIツール
Undress AI Tool
脫衣畫像を無料で
Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ
AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。
Clothoff.io
AI衣類リムーバー
Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。
人気の記事
グラスワンダービルドガイド|ウマゴサメはかなりダービーです
1 か月前
By Jack chen
<??>:森の99泊 - すべてのバッジとそれらのロックを解除する方法
4週間前
By DDD
Uma Musume Pretty Derby Bannerスケジュール(2025年7月)
1 か月前
By Jack chen
船と墓のためのRimworld Odyssey溫度ガイド
3週間前
By Jack chen
Windowsセキュリティは空白であるか、オプションを表示しません
1 か月前
By 下次還敢
ホットツール
メモ帳++7.3.1
使いやすく無料のコードエディター
SublimeText3 中國語版
中國語版、とても使いやすい
ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境
ドリームウィーバー CS6
ビジュアル Web 開発ツール
SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
PHPでのオブジェクトリレーショナルマッピング(ORM)パフォーマンスチューニング
Jul 29, 2025 am 05:00 AM
n 1クエリの問題を避け、関連するデータを事前にロードすることにより、データベースクエリの數(shù)を減らします。 2.必要なフィールドのみを選択して、メモリと帯域幅を保存するために完全なエンティティをロードしないようにします。 3. DoctrineのセカンダリキャッシュやRedis Cacheの高周波クエリ結(jié)果など、キャッシュ戦略を合理的に使用します。 4.エンティティのライフサイクルを最適化し、クリア()を定期的に呼び出してメモリを解放してメモリオーバーフローを防ぎます。 5.データベースインデックスが存在し、生成されたSQLステートメントを分析して、非効率的なクエリを避けます。 6.変更が不要なシナリオで自動変更追跡を無効にし、パフォーマンスを改善するためにアレイまたは軽量モードを使用します。 ORMを正しく使用するには、SQLモニタリング、キャッシュ、バッチ処理、適切な最適化を組み合わせて、開発効率を維持しながらアプリケーションのパフォーマンスを確保する必要があります。
PHPとrabbitmqを使用した回復力のあるマイクロサービスを構(gòu)築します
Jul 27, 2025 am 04:32 AM
柔軟なPHPマイクロサービスを構(gòu)築するには、RabbitMQを使用して非同期通信を?qū)g現(xiàn)する必要があります。 2。信頼性を確保するために、永続的なキュー、永続的なメッセージ、リリース確認、手動ACKを構(gòu)成します。 3.指數(shù)バックオフ再試行、TTL、およびデッドレターキューセキュリティ処理の障害を使用します。 4.監(jiān)督などのツールを使用して、消費者プロセスを保護し、ハートビートメカニズムを有効にしてサービスの健康を確保します。そして最終的に、システムが障害で継続的に動作する能力を?qū)g現(xiàn)します。
PHP用の生産対応Docker環(huán)境の作成
Jul 27, 2025 am 04:32 AM
正しいPHP Basicイメージを使用し、安全で最適化されたDocker環(huán)境を構(gòu)成することが、生産を?qū)g現(xiàn)するための鍵です。 1.攻撃面を減らしてパフォーマンスを向上させるための基本畫像としてPHP:8.3-fpm-alpineを選択します。 2.カスタムPHP.iniを介して危険な機能を無効にし、エラーディスプレイをオフにし、OpCacheとJITを有効にしてセキュリティとパフォーマンスを強化します。 3. NGINXを逆プロキシとして使用して、機密ファイルへのアクセスを制限し、PHPリクエストをPHP-FPMに正しく転送します。 4.マルチステージ最適化畫像を使用して開発依存関係を削除し、非ルートユーザーを設定してコンテナを?qū)g行します。 5. CRONなどの複數(shù)のプロセスを管理するためのオプションの監(jiān)督。 6.展開前に機密情報漏れがないことを確認します
vscode settings.jsonの場所
Aug 01, 2025 am 06:12 AM
settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設定
PHPの內(nèi)部ガベージコレクションメカニズムに深く潛ります
Jul 28, 2025 am 04:44 AM
PHPのゴミ収集メカニズムは參照カウントに基づいていますが、周期的な円形のゴミコレクターによって円形の參照を処理する必要があります。 1。変數(shù)への參照がない場合、參照カウントはすぐにメモリを解放します。 2.參照參照により、メモリを自動的にリリースできなくなり、GCを検出およびクリーニングすることがGCに依存します。 3。GCは、「可能なルート」ZVALがしきい値に到達するか、GC_COLLECT_CYCLES()を手動で呼び出すとトリガーされます。 4.長期実行PHPアプリケーションは、メモリの漏れを避けるために、gc_status()を監(jiān)視し、gc_collect_cycles()を呼び出す必要があります。 5.ベストプラクティスには、gc_disable()を使用してパフォーマンスキー領域を最適化し、ormのclear()メソッドを介して繰り返しのオブジェクトを最適化する回路參照の回避が含まれます。
サーバーレス革命:BREFを使用してスケーラブルなPHPアプリケーションを展開します
Jul 28, 2025 am 04:39 AM
BREFにより、PHP開発者は、サーバーを管理せずにスケーラブルで費用対効果の高いアプリケーションを構(gòu)築できます。 1.Brefは、最適化されたPHPランタイムレイヤーを提供し、PHP8.3およびその他のバージョンをサポートし、LaravelやSymfonyなどのフレームワークとシームレスに統(tǒng)合することにより、PHPをAwslambdaにもたらします。 2。展開手順には、次のものが含まれます。Composerを使用してBREFのインストール、httpエンドポイントや職人コマンドなどの関數(shù)とイベントを定義するためにserverless.ymlの構(gòu)成。 3. serverlessdeployコマンドを?qū)g行して、展開を完了し、Apigatewayを自動的に構(gòu)成し、アクセスURLを生成します。 4。Lambdaの制限については、Brefは解決策を提供します。
Readonlyプロパティを備えたPHPに不変のオブジェクトを構(gòu)築します
Jul 30, 2025 am 05:40 AM
readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.
PHPを機械學習モデルと統(tǒng)合します
Jul 28, 2025 am 04:37 AM
usearestapitobridgephpandmlmodelsbyrunningthemodelinpythonviaflaskorapiandapiandcallingtfromphpusingcurlorguzzle.2.runpythosscriptsdirectlyfrompurspusingec()orshell_exec()
See all articles
{TABLE_ROWS}
table_row.tpl
以下は引用內(nèi)容です:
yad.php3
引用內(nèi)容:
include "class.FastTemplate.php3";
function InitializeTemplates() {
global $tpl;
$tpl( " .");
$tpl->define( array( page =>gt; "page.tpl" ,
table =>gt; "table.tpl",
table_row => "table_row.tpl" " ) );
}
function ReadCurrentDirectory() {
global $tpl ;
$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, filesize($filename)); parse(TABLE_ROWS, ".table_row");
}
closedir($handle);
$tpl->parse(PAGE_CONTENT, "テーブル");
function PrintPage($title) {
global $tpl;
$tpl->assign(PAGE_TITLE, $title); , "ページ");
$tpl->FastPrint(FINAL);
InitializeTemplates();
ReadCurrentDirectory();
Printpage( "さらに別のデモ" );
?>
スピード ディスカッション
「すべてが素晴らしい」とあなたは言うかもしれません。しかし、サイトの速度には影響しないのでしょうか? " www~
いいえ、あなたの Web サイトはおそらく速くなります。単純な理由の 1 つは、プログラマーであるあなたはアプリケーションの設計とコードの記述に関心があるため、コードが速くなります。効率が良く、処理が簡単で速くなります。同じタスクなので、プロジェクトで FastTemplate の使用を検討する必要がある理由のリストに別の理由を追加することもできます。
既存の Web サイトを変換するだけであれば、パフォーマンスが向上する可能性があります。この場合、FastTemplate はすべてのマクロに正規(guī)表現(xiàn)を使用し、各正規(guī)表現(xiàn)は 1 回だけコンパイルされ、速度への影響は無視できるため、PHP で正規(guī)表現(xiàn)バッファリングを使用することをお勧めします。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

n 1クエリの問題を避け、関連するデータを事前にロードすることにより、データベースクエリの數(shù)を減らします。 2.必要なフィールドのみを選択して、メモリと帯域幅を保存するために完全なエンティティをロードしないようにします。 3. DoctrineのセカンダリキャッシュやRedis Cacheの高周波クエリ結(jié)果など、キャッシュ戦略を合理的に使用します。 4.エンティティのライフサイクルを最適化し、クリア()を定期的に呼び出してメモリを解放してメモリオーバーフローを防ぎます。 5.データベースインデックスが存在し、生成されたSQLステートメントを分析して、非効率的なクエリを避けます。 6.変更が不要なシナリオで自動変更追跡を無効にし、パフォーマンスを改善するためにアレイまたは軽量モードを使用します。 ORMを正しく使用するには、SQLモニタリング、キャッシュ、バッチ処理、適切な最適化を組み合わせて、開発効率を維持しながらアプリケーションのパフォーマンスを確保する必要があります。

柔軟なPHPマイクロサービスを構(gòu)築するには、RabbitMQを使用して非同期通信を?qū)g現(xiàn)する必要があります。 2。信頼性を確保するために、永続的なキュー、永続的なメッセージ、リリース確認、手動ACKを構(gòu)成します。 3.指數(shù)バックオフ再試行、TTL、およびデッドレターキューセキュリティ処理の障害を使用します。 4.監(jiān)督などのツールを使用して、消費者プロセスを保護し、ハートビートメカニズムを有効にしてサービスの健康を確保します。そして最終的に、システムが障害で継続的に動作する能力を?qū)g現(xiàn)します。

正しいPHP Basicイメージを使用し、安全で最適化されたDocker環(huán)境を構(gòu)成することが、生産を?qū)g現(xiàn)するための鍵です。 1.攻撃面を減らしてパフォーマンスを向上させるための基本畫像としてPHP:8.3-fpm-alpineを選択します。 2.カスタムPHP.iniを介して危険な機能を無効にし、エラーディスプレイをオフにし、OpCacheとJITを有効にしてセキュリティとパフォーマンスを強化します。 3. NGINXを逆プロキシとして使用して、機密ファイルへのアクセスを制限し、PHPリクエストをPHP-FPMに正しく転送します。 4.マルチステージ最適化畫像を使用して開発依存関係を削除し、非ルートユーザーを設定してコンテナを?qū)g行します。 5. CRONなどの複數(shù)のプロセスを管理するためのオプションの監(jiān)督。 6.展開前に機密情報漏れがないことを確認します

settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設定

PHPのゴミ収集メカニズムは參照カウントに基づいていますが、周期的な円形のゴミコレクターによって円形の參照を処理する必要があります。 1。変數(shù)への參照がない場合、參照カウントはすぐにメモリを解放します。 2.參照參照により、メモリを自動的にリリースできなくなり、GCを検出およびクリーニングすることがGCに依存します。 3。GCは、「可能なルート」ZVALがしきい値に到達するか、GC_COLLECT_CYCLES()を手動で呼び出すとトリガーされます。 4.長期実行PHPアプリケーションは、メモリの漏れを避けるために、gc_status()を監(jiān)視し、gc_collect_cycles()を呼び出す必要があります。 5.ベストプラクティスには、gc_disable()を使用してパフォーマンスキー領域を最適化し、ormのclear()メソッドを介して繰り返しのオブジェクトを最適化する回路參照の回避が含まれます。

BREFにより、PHP開発者は、サーバーを管理せずにスケーラブルで費用対効果の高いアプリケーションを構(gòu)築できます。 1.Brefは、最適化されたPHPランタイムレイヤーを提供し、PHP8.3およびその他のバージョンをサポートし、LaravelやSymfonyなどのフレームワークとシームレスに統(tǒng)合することにより、PHPをAwslambdaにもたらします。 2。展開手順には、次のものが含まれます。Composerを使用してBREFのインストール、httpエンドポイントや職人コマンドなどの関數(shù)とイベントを定義するためにserverless.ymlの構(gòu)成。 3. serverlessdeployコマンドを?qū)g行して、展開を完了し、Apigatewayを自動的に構(gòu)成し、アクセスURLを生成します。 4。Lambdaの制限については、Brefは解決策を提供します。

readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.

usearestapitobridgephpandmlmodelsbyrunningthemodelinpythonviaflaskorapiandapiandcallingtfromphpusingcurlorguzzle.2.runpythosscriptsdirectlyfrompurspusingec()orshell_exec()
