1. はじめに
現在、WEB アプリケーションを開発する際に最も一般的な方法の 1 つは、「MVC」構造を使用して WEB アプリケーションを開発することです。これにより、プログラムの設計がより簡単になります。 「MVC」とは何ですか?簡単に言うと「Model」「View」「Controller」の組み合わせ、つまりすべて「3層」の抽象構造です。もちろん、ここで言う「MVC」はWEB上のアプリケーション向けです。 「コードとページ設計の分離」は、Java Servlet/JavaServer Pages テクノロジーを使用した「Struts」で最も明確に表現されています。興味のある方は、http://jakarta.apache.org/strutsLook を参照してください。この設計パターンにより、プログラマーはコードの設計、作成、デバッグに集中でき、Web デザイナーは特定の詳細に注意を払わずに設計に多くの時間を費やすことができるため、この分業は大規模プロジェクトに完全に適しています。またはエンタープライズレベルの分散アプリケーション開発。
PHP5 のリリースから、オブジェクト指向の機能がますます充実していることがわかります。Zend Optimizer と組み合わせれば、PHP を使用して大規模な商用 Web サイトや分散エンタープライズ アプリケーションを開発できるようになりました。カプセル化が達成されました。
PHP の「MVC」デザインパターンを使用して WEB アプリケーションを開発するにはどうすればよいですか? 1 つのこと (コードとページのデザインは分離されている) を覚えておいて、簡単な例を使ってそれを説明します。たとえば、データベースからメンバー情報をクエリして Web ページに表示したい場合は、次の 2 つの点を考慮する必要があります。 1. データベースに接続し、メンバーの情報を取得します。 2. Web ページにメンバー情報を表示し、データベースに接続します。これを「DB」クラスと呼びます。このとき「Model」を書く必要があります。「DB」クラスを操作してデータを取得するプログラムが役割を果たします。このプログラムは、「POST」または「PUT」データを受け取ります。クライアントにアクセスし、「DB」クラスを呼び出してデータを取得し、これらのデータを「コントローラー」に格納し、最後にそのデータを「ビュー」に渡して、上記の分析から特定のレイアウト形式に従って表示します。ここではテンプレートがその役割を果たしていることがわかります。もちろん、テンプレートクラスだけでは MVC とは言えません。詳細については、「JSF」を参照してください。
「3t」は主に「Controller」のデータを読み込み、最後に簡単なテンプレート構文でデータを表示するテンプレートクラスです。
解析速度が速く、必要に応じてHTMLキャッシュまたはPHPキャッシュを使用することもでき、高速で安定したWEBアプリケーションを実現することもできます。有名なテンプレートクラス「SMARTY」は、インストールや操作が簡単で、データの表示に関しても「PHPの文法」や「JavaBeans」に似ており、必要な機能を追加することができます。オープンソースなので、近日中にプラグイン機能もサポートされる予定です
拡張性が高く、最新の PHP5 をサポートしているため、いつでも使用できます。 PHP バージョン >=4.0.6。もちろん、サーバー上のファイルを操作する権限が必要です
それは強力で、テンプレートのマルチレベルのネスト、マルチレベルの配列ループなどをサポートしています
もちろん、このテンプレートには多くの改善の余地があります。継続的に改善する前に、さまざまな環境でテストして使用する必要があります。現在、
II 環境でのみテストされています。解凍後、次のディレクトリ構造が表示されるはずです:
./3tx.x/cmp/ コンパイルされたファイル (このフォルダーが読み取り可能および書き込み可能であることを確認してください)
./3tx.x/tpl/ テンプレート ファイル (テンプレート ファイルはここに配置されます。このフォルダーが読み取り可能であることを確認してください)
./3tx.x/che/ キャッシュ ファイルが保存されているフォルダー (このフォルダーが読み取り可能および書き込み可能であることを確認してください)
./3tx.x/ttt/ ttt.php 3T テンプレート クラス ファイル
./3tx.x/ プログラム ファイル (作成したプログラムはここに配置されます)
2. PHP バージョンを PHP4.0.6 より低くすることはできません。全体的なパフォーマンスを考慮して、PHP バージョンを 4.3 .0 以上にアップグレードすることをお勧めします。プログラムの内容が大幅に改善されます
3. 実行時に変数が定義されていない場合は、プログラムの前に「error_reporting(7);」関数を追加してください
3. テンプレートの簡単な構文説明:
通常、左中括弧「{」と右中括弧「}」はテンプレート構文の先頭と末尾として使用されます。もちろん、「[」や「]」などのカスタム区切り文字も使用できます。中括弧を使用する 区切り文字について説明します
(注: 以下の [tplCode] と [/tplCode] の間のコードはテンプレート構文コードです)
1. テンプレート ファイル内で次のような PHP コードを使用します:
[tplCode]
{php }
$i = 3;
echo $i;
{/php}
[/tplCode]
「例6」を参照してください。
2. 次のような foreach ループを使用します。配列 $a、PHP の foreach に相当します ($a as $k=>$v)....)
[/tplCode]
{foreach:$a,$k,$v}
$v = { $ v}
{/foreach}
[/tplCode]
2 番目の使用法 (配列 $a に 15 個の要素がある場合、次のループは最初の 5 個だけを取得します)
[tplCode]
{foreach:$a,$k,$v,5}
$v = {$v}
{/foreach}
[/tplCode]
3 番目の使用法 (ループする回数。配列 $a に 15 個の要素がある場合、次のループは 3 番目の要素から始まり 5 番目の要素で終了します)
[tplCode]
{foreach:$a,$k, $v,3, 5}
$v = {$v}
{/foreach}
[/tplCode]
「example1」と「example3」を参照してください。「foreach」ループでは多次元配列を使用できます。詳細については、「example10」を参照してください。
3. 次のような IF ステートメントをテンプレートで使用します。
最初の使用法
[tplCode]
{if:$a == "hello"}
変数 $a の値は " hello "
{/if}
[/tplCode]
2 番目の使用法
[tplCode]
{if:$a == true}
変数 $a は true
{else}
変数 $a は true ではありません
{/if }
[/tplCode]
3番目の使用法
[tplCode]
{if:$a == 2}
変数$aの値は2です
{elseif:$a == 3}
Variable$ の値a は 3 です
{/if}
[/tplCode]
具体的な使用方法については、「example2」と「example6」を参照してください
4.
{tplCode}
{includetpl: などのテンプレート ファイルをテンプレートに含めます。 head.tpl}
{/tplCode}
テンプレート ファイル「head.tpl」がここに含まれます。含まれるテンプレート ファイルは、次のようなテンプレートに含める必要があります
5.
{includephp :head.php}
{/tplCode}
これには PHP ファイル「head.php」が含まれており、ファイル「head.php」は現在のプログラム ディレクトリにあります
含まれるファイルについては「example8」を参照してください
6. テンプレート内の時刻を次のように出力します。
{tplCode}
{date:Y-m-d H:i:s}
{/tplCode}
の後の "Y-m-d H:i:s" 文字列は、標準の PHP 時刻です。具体的な使用方法については、PHP マニュアルを参照してください
具体的な使用方法については、「example7」を参照してください
7. テンプレートで数学関数を使用します
最初の使用方法は、結果を直接出力することです
{tplCode}
{math: 3*2-5}
{/tplCode}
2 番目の使用方法、指定した変数に値を代入します
{tplCode}
{math:3*2-5,$result}
{/tplCode}
3 番目使用方法、指定した変数に値を代入、3 番目のパラメータで即時出力するかどうかを設定、「Y」出力に設定、「N」は出力しない
{tplCode}
{math:3*2-5,$result,Y}
{/tplCode}
具体的な使用法については、「example4」を参照してください
8. テンプレートでは、次のコードに示すように FOR ループ
を使用します
[tplCode]
{for:5,1000,1,$i}
{$i}
{/for}
{/tplCode}
パラメータの説明:
5: ループが 5 から始まることを示します
1000: ループが 1000 で終了することを示します
1: の増分を示します各ループは 1、$n++ に相当します
$i: 各ループの値が取得されることを示します
(上記の「5」。「1000」や「1」などの定数は、次のような変数に置き換えることもできます: {for:$num,$max,$step,$i}、変数は割り当てられた「assign()」メソッドを使用してプログラム内で使用されます)
次のコードも参照してください (理解のために):
[tplCode]
{対象:500,30,-2,$i}
ループを 500 から開始し、30 で終了するまで毎回 2 を減算します。現在のループ値は次のとおりです: {$i}
{/for}
{/tplCode}
具体的な使用法については、「example2」、「example11」を参照してください
9. テンプレートで Email タグを使用します
最初の使用法:
[tplCode]
{email:redhat@hnwj.net}
[/tplCode]
2 番目の使用法:
[tplCode]
{email:redhat@hnwj.net,Redhat のメール}
[/tplCode]
3 番目の使用法:
[tplCode]
{email:redhat@hnwj.net、これは「Redhat」ですメールアドレスこれはスタイル化されていますclass=m,m}
[/tplCode]
具体的な使用法については「example5」を参照してください
10. テンプレートで変数を定義します
[tplCode] ]
{assign:$tplVar, これは私が定義した変数です はテンプレート内または PHP コードを使用して出力できます}
[/tplCode]
具体的な使用法については「example6」を参照してください
11. 他の構文と関数はまだ開発中です...
良いコメントやアイデアがある場合は、http://2002.buyionline.net/2002/gbook.php にアクセスしてバグを見つけてください。時間内にメッセージを残してください。ありがとうございます。
注:
1. このテンプレートは、複数層のネストされたテンプレートまたは PHP ファイルをサポートし、複数層の foreach または for ループをサポートします。
実際の使用中に $ 属性を変更した場合 cmpCheck が true に設定されている場合、PHP プログラムは実行されるたびにコンパイルされます。それ以外の場合、プログラムはコンパイルされた PHP ファイルの存在時間に基づいて再コンパイルするかどうかを決定します。この属性のデフォルト値は true で、使用時は通常 false に設定されます (速度を上げることができます)
次のようなメソッドを設定します: $tttObj->setCmpCheck(true); 最大の欠点 3.このプログラムの欠点は、プログラム内に表示される構文エラー情報を正確に取得できないことです。
4. キャッシュ機能は当面サポートされていません。何か良いアイデアがあれば、教えてください:-)
5.混合モードはテンプレートを PHP ファイルにコンパイルするために使用されるため、間違えないでください (もちろん、テンプレートは大文字と小文字の書き込みをサポートしています。つまり、{math:38*7} と {MatH:38) を記述することになります。 *7} も同様の効果があります)、「{foreach:$data,k,$v}」と入力するとコンパイルは成功しますが、「$」記号があるため、実行時に構文エラーが発生します。 「k」の前に欠落があります。エラーをキャッチするために各行を構文解析するコードをすでに作成しましたが、コードが数百行に達すると、時間がかかることがわかりました。コードが比較的小さい場合は、大丈夫です。しかし、多すぎるとパフォーマンスの低下につながります。そして、PHP 自体には非常に優れたエラー メッセージ プロンプトがあるのですが、コードの各行を分析していませんでした。上記のロゴでは、パラメーターに引用符や二重引用符がありません (条件判定ステートメントを除く)。それに注意してください:-)
4.
1. という名前の PHP ファイルを作成します。 php を現在のディレクトリ (つまり "./") に保存すると、内容は次のようになります:
require_once "./ttt/ttt.php";//クラス ファイルを導入します
$ttt = new TTT ();//3Tテンプレートクラスの初期化 Example
$ttt->setTplDir("./tpl/");//コンパイルが必要なテンプレートファイルが格納されているディレクトリ
$ttt->setCmpDir(". /cmp/");//コンパイル済みファイルの保存ディレクトリ
$ttt->assign('title', '空の色'); //変数を設定
$ttt->assign('content', '青、良い天気、雲ひとつない、晴れ') ;//変数を設定
$ttt->assign('foot','Welcome welcome');//変数を設定
$ttt->display('first.tpl ');//出力
?>
2. tpl ファイルを作成します (「first.tpl」という名前で、ディレクトリ「./tpl/」に保存されます)。
行//EN">
{$content}
{$foot}

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

ホットトピック



