Smarty 構成と高度なキャッシュ技術の共有_PHP チュートリアル
はじめに
Smarty は、論理コードとユーザー インターフェイスを分離する優れた PHP テンプレート エンジンです。
Smarty のキャッシュ属性を true に設定すると、キャッシュ テクノロジーを適用せずに Smarty を学習して使用することは大きな損失となります。 Smarty では、ユーザーの WEB リクエストはこの静的 HTML ファイルに直接変換されます。これは、静的 HTML ファイルを呼び出すのと同等であり、バックエンド サーバーの負担を大幅に軽減します。
ダウンロードと設定
公式ダウンロード: Smarty ダウンロード
ダウンロード後、プロジェクトのファイル ディレクトリに解凍します。
require('../libs/Smarty.class.php');
$smarty = new Smarty
//$smarty-> force_compile = true; //強制コンパイル
$smarty->debugging = true; //デバッグ
$smarty->cache_lifetime = 120; (秒)
$smarty->cache_dir = MY_SMARTY_DIR . '/cache/' ; //キャッシュ ストレージ パスを設定します
Smarty キャッシュ技術
グローバル キャッシュローカル キャッシュ
挿入メソッドダイナミック ブロックメソッド
プラグイン ブロックメソッド
グローバル キャッシュ テクノロジ
その名前が示すように、グローバル キャッシュは、ページ全体を参照し、キャッシュ ファイルの生存時間を指定すると、指定した時間内にページ全体を再度閲覧すると、キャッシュ ファイルが直接読み取られます。
コードをコピーします
注: テンプレートに複数のページがある場合は、キャッシュ ファイルを 1 つだけ設定する必要があります。 たとえば、ページに複数の記事があるとします。
http://website/index.php?p=2
コードをコピーします
$smarty->display('index.tpl',$url);
キーポイント: キャッシュテクノロジーを使用する主な理由は、データベースへの読み取りと書き込みを減らすことです。したがって、$smarty->isCached('index.tpl') を使用してキャッシュが存在するかどうかを判断する必要があります。存在する場合は、データベースを再度操作しないでください。
コードをコピーします
$row = mysql_fetch_row($query);
$smarty->assign("loaddatabase",$row[1]);
}
ここで別の問題が発生します。データベース内で何かを変更し、表示コンテンツを更新したいが、キャッシュの有効期限がまだ切れていない場合、どうすればよいでしょうか?
$smarty->clearCache("index.tpl");
上記のclearCacheは、データを更新した後にclearCacheを呼び出すだけでこの問題を解決できます。
追記: Smarty3 バージョンを使用しています。このバージョンでは多くのメソッドの名前が変更されています。Smarty2 の場合、「$smarty->is_cached() を使用してください。」と表示されます。 。
後で登場する Smarty3:registerPlugin() と Smarty2:register_block() もバージョンの問題です。
キャッシュありとなしの速度の比較を見てみましょう:
1. 初めての閲覧、キャッシュなし 合計時間 0.01421
が存在します。
部分キャッシュ技術
部分キャッシュ = ページのキャッシュです。すべてのキャッシュが生成されるわけではありません。特定の機能モジュールをカスタマイズして、閲覧するたびにデータが更新されます。
例: Web ページ ユーザー ステータス、Web ページ統計、広告バナーなどを表示します。これらのデータは非常に速く更新されるため、キャッシュには適していません。このように、ローカル キャッシュは便利です。
ローカル キャッシュには 3 つの方法があります:
1. Insert メソッド
insert に含まれるコンテンツはキャッシュされず、テンプレートが呼び出されるたびに関数が再実行されます。ここでの関数名に注意してください。関数名は insert で始まる必要があり、テンプレート内の名前はそれに対応しています。
index.php
コードをコピーします
function insert_get_current_time($date){
return date("Y-m-d H:i:s");
}
Index.tpl
コードをコピーします
nocache:),$_smarty_tpl);?>
コードをコピー
phpのカスタムブロック
index.php
[code]
//smarty 3
//関数宣言
function Smarty_block_nocache ($param,$content,$smarty)
{
return $content ;
}
// Smarty に登録します
$smarty->registerPlugin("function","nocache", "smarty_block_nocache");
冒頭で述べたように、Smarty3 は registerPlugin を使用し、Smarty2 は register_block を使用します
index .tpl
{nocache}{$date}{/nocache}
次に、キャッシュ ファイルを確認して、テンプレートが呼び出されるたびに $date が再実行されると結論付けます
[/code]
tpl_vars['date']->value;?>
コードをコピーします
function Smarty_block_nocache($param, $content, $smarty)
{
return $content;
?>
[code]
tpl テンプレートでの使用方法は 2 番目のメソッドと同じです
Smarty キャッシュ テクノロジーは Web サイトの速度と品質を大幅に向上させることができ、その使用方法は比較的簡単であると結論付けることができます。
最後の注意点は、Smarty によって生成されたキャッシュ ファイルの拡張子は php ですが、php コードとして解析されないということです。
Author: That Moment

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

phpisusededemingemailsduetoitsbuilt-inmail()functionandsupportiveLibrarieslikephpmailerandswiftmailer.1)usethemail()functionforbasicemails、butithaslimitations.2)emploadforadvancedfeatureSlikelikelivableabableabuses.3)雇用

PHPパフォーマンスボトルネックは、次の手順で解決できます。1)パフォーマンス分析にXdebugまたはBlackfireを使用して問題を見つける。 2)データベースクエリを最適化し、APCUなどのキャッシュを使用します。 3)array_filterなどの効率的な関数を使用して、配列操作を最適化します。 4)bytecodeキャッシュ用のopcacheを構成します。 5)HTTP要求の削減や写真の最適化など、フロントエンドを最適化します。 6)パフォーマンスを継続的に監視および最適化します。これらの方法により、PHPアプリケーションのパフォーマンスを大幅に改善できます。

依存関係(di)inphpisadesignpatternativats anducesclassodulencies、拡張測定性、テスト可能性、および維持可能性。

cachingemprovesppperformancebystring of computationsorquickretrieval、還元装置の削減は、reducingerloadendenhancersponseTimes.efcectivestrategiesInclude:1)opcodecaching、compiledphpscriptsinmemorytoskipcompilation;


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

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

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
