PHP の Yii フレームワークでビューを作成およびレンダリングする方法の詳細な説明、yii Framework_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:55:17
オリジナル
848 人が閲覧しました

PHP の Yii フレームワークでビューを作成およびレンダリングする方法の詳細な説明

ビューは MVC パターンの一部です。 Web アプリケーションでは、ビュー テンプレートに基づいてビューが作成され、主に HTML コードと表示 PHP コードが含まれます。これは、yiiwebView アプリケーション コンポーネントを通じて管理されます。は、主にビューの構築とレンダリングに役立つジェネリック メソッドを提供します。簡単にするために、ビュー テンプレートまたはビュー テンプレート ファイルをビューと呼びます。

ビューの作成

前述したように、ビューは HTML と PHP コードを含む PHP スクリプトです。次のコードは、ページ タイトルやフォームなどの動的コンテンツの生成に PHP コードが使用されていることがわかります。 HTML コードによって美しい HTML ページに編成されます。

リーリー

ビューでは、$this にアクセスして yiiwebView をポイントし、このビュー ファイルを管理およびレンダリングできます。

上記の例のビューには、$this に加えて、$model などの他の事前定義変数があります。これらの変数は、ビューのレンダリングをトリガーするコントローラーまたは他のオブジェクトからビューに渡されるデータを表します。

ヒント: IDE エディターで認識できるように、ビュー ファイルのヘッダー コメントに定義済み変数をリストします。これは、ビュー ドキュメントを生成する良い方法です。
安全性

HTML ページを生成するビューを作成する場合、ユーザー入力データを表示する前にトランスコードしてフィルター処理することが重要です。そうしないと、アプリケーションがクロスサイト スクリプティング攻撃に対して脆弱になる可能性があります。

プレーン テキストを表示するには、まず yiihelpersHtml::encode() を呼び出してトランスコーディングします。たとえば、次のコードはユーザー名を表示する前にトランスコードします。 リーリー

HTML コンテンツを表示するには、まず yiihelpersHtmlPurifier を呼び出してコンテンツをフィルターします。たとえば、次のコードは送信されたコンテンツを表示する前にフィルターします。 リーリー

ヒント: HTMLPurifier は出力データのセキュリティを確保するのに優れていますが、アプリケーションが高いパフォーマンスを必要とする場合は、フィルターされた結果をキャッシュすることを検討してください。

組織ビュー

コントローラーやモデルと同様に、ビューの整理にはいくつかの規則があります:

コントローラーによってレンダリングされるビュー ファイルは、デフォルトで @app/views/ControllerID ディレクトリに配置されます。ここで、ControllerID はコントローラー ID に対応します。たとえば、コントローラー クラスは PostController であり、ビュー ファイル ディレクトリは @app/views/ である必要があります。 post、コントローラークラスのPostCommentControllerが対応します。ディレクトリは@app/views/post-commentです。モジュール内のコントローラーの場合、ディレクトリはyiibaseModule::basePathモジュールディレクトリの下のviews/ControllerIDディレクトリである必要があります。 ウィジェットによってレンダリングされたビュー ファイルは、デフォルトで WidgetPath/views ディレクトリに配置されます。ここで、WidgetPath はウィジェット クラス ファイルが配置されているディレクトリを表します。 他のオブジェクトによってレンダリングされるビュー ファイルについては、ウィジェットの場合と同様のルールに従うことをお勧めします。

コントローラーまたはウィジェットの yiibaseViewContextInterface::getViewPath() メソッドをオーバーライドして、ビュー ファイルのデフォルト ディレクトリをカスタマイズできます。



レンダービュー

レンダー ビュー メソッドは、ビューをレンダリングするためにコントローラー、ウィジェット、またはその他の場所で呼び出すことができます。このメソッドは次の形式に似ています。 リーリー コントローラーでのレンダリング

コントローラーでは、次のコントローラー メソッドを呼び出してビューをレンダリングできます:

yiibaseController::render(): ビュー名をレンダリングし、レイアウトを使用してレンダリング結果を返します。

yiibaseController::renderPartial(): ビュー名をレンダリングし、レイアウトを使用しません。

    yiiwebController::renderAjax(): レイアウトを使用せずにビュー名をレンダリングし、通常は AJAX Web リクエストに応答して使用される、登録されているすべての JS/CSS スクリプトとファイルを挿入します。
  • yiibaseController::renderFile(): ビュー ファイル ディレクトリまたはエイリアスの下にビュー ファイルをレンダリングします。
  • 例:
  • リーリー
  • 小物

ウィジェットは CWidget またはそのサブクラスのインスタンスであり、主にデータを表すために使用されるコンポーネントです。たとえば、カレンダー ウィジェットは、A のレンダリングに使用できます。複雑なカレンダー インターフェイス。小さなオブジェクトにより、ユーザー インターフェイスがより再利用可能になります。

次のようにウィジェットを使用できます: リーリー
または
リーリー

後者は、本文コンテンツを必要としないコンポーネントに使用されます。

ウィジェットは構成を通じてそのパフォーマンスをカスタマイズできます。これは、CBaseController::beginWidget または CBaseController::widget を呼び出してその初期化プロパティ値を設定することによって行われます。たとえば、CMaskedTextField ウィジェットを使用する場合、使用されるマスクを指定します。これは、出力形式として理解されます (翻訳者注)。これは、これらのプロパティの初期化値を含む配列を渡すことによって行われます。ここでの配列のキーはプロパティの名前であり、配列の値は以下に示すように、小さいオブジェクトの対応するプロパティ。 リーリー

CWidget を継承し、その init() メソッドと run() メソッドをオーバーライドして、新しいウィジェットを定義します。

class MyWidget extends CWidget
{
  public function init()
  {
    // 此方法会被 CController::beginWidget() 调用
  }
 
  public function run()
  {
    // 此方法会被 CController::endWidget() 调用
  }
}
ログイン後にコピー

小物件可以像一个控制器一样拥有它自己的视图.默认情况下,小物件的视图文件位于包含了小物件类文件目录的 views 子目录之下.这些视图可以通过调用 CWidget::render() 渲染,这一点和控制器很相似.唯一不同的是,小物件的视图没有布局文件支持。另外,小物件视图中的$this指向小物件实例而不是控制器实例。

视图中渲染

可以在视图中渲染另一个视图,可以调用yii\base\View视图组件提供的以下方法:

  • yii\base\View::render(): 渲染一个 视图名.
  • yii\web\View::renderAjax(): 渲染一个 视图名 并注入所有注册的JS/CSS脚本和文件,通常使用在响应AJAX网页请求的情况下。
  • yii\base\View::renderFile(): 渲染一个视图文件目录或别名下的视图文件。

例如,视图中的如下代码会渲染该视图所在目录下的 _overview.php 视图文件, 记住视图中 $this 对应 yii\base\View 组件:

<&#63;= $this->render('_overview') &#63;>
ログイン後にコピー

其他地方渲染

在任何地方都可以通过表达式 Yii::$app->view 访问 yii\base\View 应用组件, 调用它的如前所述的方法渲染视图,例如:

// 显示视图文件 "@app/views/site/license.php"
echo \Yii::$app->view->renderFile('@app/views/site/license.php');
ログイン後にコピー

您可能感兴趣的文章:

  • 详解PHP的Yii框架中自带的前端资源包的使用
  • 简介PHP的Yii框架中缓存的一些高级用法
  • 深入解析PHP的Yii框架中的缓存功能
  • PHP的Yii框架中View视图的使用进阶
  • PHP的Yii框架中Model模型的学习教程
  • 详解PHP的Yii框架中的Controller控制器
  • PHP的Yii框架中移除组件所绑定的行为的方法
  • PHP的Yii框架中行为的定义与绑定方法讲解
  • 深入讲解PHP的Yii框架中的属性(Property)
  • 详解PHP的Yii框架中扩展的安装与使用

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1117072.htmlTechArticlePHP的Yii框架中创建视图和渲染视图的方法详解,yii框架 视图是 MVC 模式中的一部分。 它是展示数据到终端用户的代码,在网页应用中,根据...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート