ビューは、主要なユーザー対話要素を含む PHP スクリプトです。これには PHP ステートメントを含めることができますが、これらのステートメントはデータ モデルを変更しないことをお勧めします。また、その単純さを維持することが最善です。見解として)。ロジックとインターフェイスを分離するには、ロジックの大部分をビューではなくコントローラーまたはモデルに配置する必要があります。
ビューには名前があり、レンダリング時にその名前はビュー スクリプト ファイルを識別するために使用されます。ビューの名前は、そのビュー スクリプトの名前と同じです。たとえば、ビューの名前 edit
は、edit.php という名前のスクリプト ファイルから取得されます。レンダリングするには、CController を呼び出す必要があります。 :: ビューの名前を渡すことによって()。このメソッドは、protected/views/ControllerID ディレクトリで対応するビュー ファイルを検索します。ビュー スクリプト内で、$this->propertyName を使用してコントローラー インスタンスにアクセスするか、Get any を使用できます。 edit
的名称出自一个名为 edit.php 的脚本文件.要渲染时如,需通过传递视图的名称调用 CController::render()。这个方法将在 protected/views/ControllerID 目录下寻找对应的视图文件.
在视图脚本内部,我们可以通过 $this 来访问控制器实例.我们可以在视图里以 $this->propertyName 的方式或取控制器的任何属性.
我们也可以用以下推送的方式传递数据到视图里:
$this->render('edit', array( 'var1'=>$value1, 'var2'=>$value2, ));
在以上的方式中, render() 方法将提取数组的第二个参数到变量里.其产生的结果是,在视图脚本里,我们可以直接访问变量$var1 和 $var2。
1. 布局
布局是一种用来修饰视图的特殊的视图文件.它通常包含了用户界面中通用的一部分视图.例如:布局可以包含header和footer的部分,然后把内容嵌入其间.
......header here...... <?php echo $content; ?> ......footer here......
其中的 $content
则储存了内容视图的渲染结果.
当使用 render() 时,布局被隐式应用。视图脚本 protected/views/layouts/main.php
是默认的布局文件.这可以通过改变 CWebApplication::layout 或者 CWebApplication::layout 进行自定义。要渲染一个不带布局的视图,则需调用renderPartial() 。
2. 小物件
小物件是 CWidget 或其子类的实例.它是一个主要用于表现数据的组件。小物件通常内嵌于一个视图来产生一些复杂而独立的用户界面。例如,一个日历小物件可用于渲染一个复杂的日历界面。小物件使用户界面更加可复用。
我们可以按如下视图脚本来使用一个小物件:
<?php $this->beginWidget('path.to.WidgetClass'); ?> ...可能会由小物件获取的内容主体... <?php $this->endWidget(); ?>
或者
<?php $this->widget('path.to.WidgetClass'); ?>
后者用于不需要任何 body 内容的组件。
小物件可通过配置来定制它的表现.这是通过调用 CBaseController::beginWidget 或 CBaseController::widget 设置其初始化属性值来完成的。例如,当使用 CMaskedTextField 小物件时,我们想指定被使用的 mask (可理解为一种输出格式),我们通过传递一个携带这些属性初始化值的数组来实现。这里的数组的键是属性的名称,而数组的值则是小物件属性所对应的值。正如以下所示 :
<?php $this->widget('CMaskedTextField',array( 'mask'=>'99/99/9999' )); ?>
继承 CWidget 并覆盖其init() 和 run() 方法,可以定义一个新的小物件:
class MyWidget extends CWidget { public function init() { // 此方法会被 CController::beginWidget() 调用 } public function run() { // 此方法会被 CController::endWidget() 调用 } }
小物件可以像一个控制器一样拥有它自己的视图。默认情况下,小物件的视图文件位于包含了小物件类文件目录的 views
子目录之下。这些视图可以通过调用 CWidget::render() 渲染,这一点和控制器很相似。唯一不同的是,小物件的视图没有布局文件支持。另外,小物件视图中的$this
指向小物件实例而不是控制器实例。
3. 系统视图
系统视图的渲染通常用于展示 Yii 的错误和日志信息。例如,当用户请求来自一个不存在的控制器或动作时,Yii 会抛出一个异常来解释这个错误, 这时,Yii 就会使用一个特殊的系统视图来显示此错误。
系统视图的命名遵从了一些规则。比如像 errorXXX
这样的名称就是用于渲染展示错误号 XXX
的 CHttpException 的视图。例如,如果 CHttpException 抛出一个 404错误,那么 error404
就会被显示。
在 framework/views
下, Yii 提供了一系列默认的系统视图。他们可以通过在 protected/views/system
次のプッシュ メソッドを使用してビューにデータを渡すこともできます:
1. レイアウト
🎜 レイアウトは、ビューを変更するために使用される特別なビュー ファイルです。たとえば、レイアウトにはヘッダー部分とフッター部分が含まれます。を選択し、その中にコンテンツを埋め込みます。🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜$content
には、コンテンツ ビューのレンダリング結果が保存されます。🎜🎜 render() を使用する場合、レイアウトは暗黙的に適用済み。ビュー スクリプト protected/views/layouts/main.php
はデフォルトのレイアウト ファイルです。これは CWebApplication::layout または CWebApplication::layout を変更することでカスタマイズできます。 レイアウトなしでビューをレンダリングするには、renderPartial() 🎜 を呼び出す必要があります。 🎜2. ウィジェット
🎜 ウィジェットは、CWidget またはそのサブクラスのインスタンスであり、主にデータを表すために使用されるコンポーネントです。ウィジェットは多くの場合、複雑で独立したユーザー インターフェイスを作成するためにビューに埋め込まれます。たとえば、カレンダー ウィジェットを使用して、複雑なカレンダー インターフェイスをレンダリングできます。ギズモにより、ユーザー インターフェイスがより再利用可能になります。 🎜🎜次のようにウィジェットを使用できます: 🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜 または 🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜 後者は、本文コンテンツを必要としないコンポーネントに使用されます。 🎜🎜ウィジェットは、構成を通じてそのパフォーマンスをカスタマイズできます。これは、CBaseController::beginWidget または CBaseController::widget を呼び出して初期化プロパティ値を設定することによって行われます。たとえば、CMaskedTextField ウィジェットを使用する場合、使用するマスク (出力形式として理解できます) を指定するには、これらのプロパティの初期化値を含む配列を渡します。ここでの配列のキーは属性の名前であり、配列の値は小さなオブジェクトの属性に対応する値です。以下に示すように: 🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜 CWidget を継承し、その init() メソッドと run() メソッドをオーバーライドして、新しいウィジェットを定義します: 🎜🎜🎜🎜🎜🎜rrreee🎜🎜🎜ウィジェットはコントローラーと同じように独自のビュー 🎜 を持つことができます。デフォルトでは、ウィジェットのビュー ファイルは、ウィジェット クラス ファイルが含まれるディレクトリのviews
サブディレクトリの下にあります。これらのビューは、コントローラーと同様に、CWidget::render() を呼び出すことでレンダリングできます。唯一の違いは、ウィジェットのビューがレイアウト ファイルをサポートしていないことです。さらに、ウィジェット ビューの $this
は、コントローラー インスタンスではなくウィジェット インスタンスを指します。 🎜3. システム ビュー
🎜 システム ビューのレンダリングは通常、Yii エラーとログ情報を表示するために使用されます。たとえば、ユーザーリクエストが存在しないコントローラーまたはアクションから来た場合、Yii はエラーを説明するために例外をスローします。このとき、Yii は特別なシステムビューを使用してエラーを表示します。 🎜🎜 システム ビューの命名は、いくつかのルールに従います。たとえば、errorXXX
のような名前は、エラー番号 XXX
の CHttpException を示すビューをレンダリングするために使用されます。たとえば、CHttpException が 404 エラーをスローした場合、error404
が表示されます。 🎜🎜framework/views
の下で、Yii は一連のデフォルトのシステムビューを提供します。 これらは、protected/views/system
🎜 に同じ名前のビュー ファイルを作成することでカスタマイズできます。 🎜🎜上記は、Yii Framework 公式ガイド シリーズ 9 - 基礎知識: 内容の表示です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。 🎜🎜🎜🎜
PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
