php Zend Framework の render_PHP チュートリアルをクリアする
asp.net mvc をやっていたときに php mvc に興味を持ち、Zend Framework (以下 ZF) を見てから、mvc を比較して理解できるようになり、しばらくの間、比較的コアな関数の render について混乱しました。明確化プロセスを記録します
通常、ZF を使用して PHP mvc を実装する場合、最も重要な場所はもちろん、コントローラー クラスのさまざまなアクション メソッドで、内容を決定して出力します。これは抽象化されたディスパッチ メソッドで確認できます。 class Zend_Controller_Action 一行 $this->$action();
コンテンツを決定して出力する方法はレンダリングですが、これらの状況は以下にいくつかリストされています
。1
2class IndexController は Zend_Controller_Action を拡張します
3{
4 パブリック関数 contactAction()
5{
6 //$this->render("index");
7 //$this->render();
8 //$this->renderScript("sidebar.phtml");
9
10
11 //$this->_helper->viewRenderer("サイドバー");
12
13 //$this->view->render("sidebar.phtml");
14 //$this->view("サイドバー");
15
16}
17}
18?>
1.セルフレンダリング
まず最初のものを見てみましょう
//$this->render("index");
//$this->render();
//$this->renderScript("sidebar.phtml");
これは Zend_Controller_Action クラスの render メソッドを直接使用しています
最初の文は、別のアクションに対応するビューをレンダリングすることです (アクションを実行することではなく、そのアクションに対応するビューをレンダリングすることであることを明確に理解してください)
2 番目の文は、このアクションに対応するビューをレンダリングします。これが何を意味するのか (多くの場合、この記述は見えないため)、これについては以下で説明します。
3 番目の文は、レンダリング固有のビュー ファイルです。ここでは、最初の 2 つのメソッドが実際にこの renderScript を呼び出していると思われるかもしれませんが、そうではありません。
ちなみに、2番目の文の理由を説明しましょう。
Zend_Controller_Action クラスの render メソッドには実際には 2 つの分岐があります。 render 関数のコードは次のとおりです
。
1 パブリック関数 render($action = null, $name = null, $noController = false)
2{
4 return $this->_helper->viewRenderer->render($action, $name, $noController);
5}
6
7 $view = $this->initView();
8 $script = $this->getViewScript($action, $noController);
9
10 $this->getResponse()->appendBody(
)
11 $view->render($script),
12 $name
13);
14}
1 つの状況として、ビュー アシスタント クラス (viewRenderer) のレンダリング メソッドを使用 (プロキシ) していることがわかります
もう 1 つの状況は、アシスタントを無効にする場合、自分で行う必要があるため、ビュー アシスタントを無効にした後、render() を使用して、このアクションに対応するビュー コンテンツを出力できます。
2. ビューアシスタント viewRenderer を通して
//$this->_helper->viewRenderer("サイドバー");
実はこの文はレンダリング内容ではなく、どのビューをレンダリングするかを指定するもので、Zend_Controller_Action_Helper_ViewRenderer クラスの関数を参照してください。
1 パブリック関数 direct($action = null, $name = null, $noController = null)
2{
4}
では、出力はどうなるでしょうか?
$this->_helper->viewRenderer("sidebar"); の直後に $this->render(); を呼び出すことができます。
しかし、実際にはそれを呼び出す必要はまったくなく、その文を書くだけです。
renderを書かない場合は、ビューアシスタントが代わりにやってくれます
Zend_Controller_Actionクラスのdispatchメソッドにこの文があります。
$this->_helper->notifyPostDispatch();
_helper とは何ですか? このメソッドを持つ Zend_Controller_Action_HelperBroker クラスです
1 パブリック関数notifyPostDispatch()
2{
3 foreach (self::getStack() として $helper) {
5}
6}
各アシスタントの postDispatch();
が呼び出されていることがわかります
そして、viewRendererはそのアシスタントの1つであり、そのpostDispatchメソッドは次のとおりです
1 パブリック関数 postDispatch()
2{
3 if ($this->_ShouldRender()) {
4 $this->render();
5}
6}
ここで、ビュー アシスタントがレンダリングを支援します。自分でレンダリングする場合、スマート ビュー アシスタントは、 _ShouldRender() の $this->getRequest()->isDispatched() を確認できます。 Zend_Controller_Front クラスのディスパッチ メソッドの次の文: $this->_request->setDispatched(true);
- 合計 2 ページ:
- 前のページ
- 1
- 2
- 次のページ

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

HTTPキャッシュヘッダーの主要なプレーヤーには、キャッシュコントロール、ETAG、およびラスト修飾が含まれます。 1.Cache-Controlは、キャッシュポリシーを制御するために使用されます。例:キャッシュコントロール:Max-Age = 3600、public。 2。ETAGは、一意の識別子を介してリソースの変更を検証します。例:ETAG: "686897696A7C876B7E"。 3. Last-Modifiedは、リソースの最後の変更時間を示しています。

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
