通常のアプリケーション開発フレームワークと同様に、Yii Framework はプログラマーがユーザー インターフェイスを設計するのに役立つ一連の UI ウィジェット (CWidget) も提供します。ウィジェットは、主にデータを表すために使用されます。通常は、複雑で独立したユーザー インターフェイスを作成するためにビューに埋め込まれます。たとえば、カレンダー ウィジェットを使用して、ユーザー インターフェイスをより再利用しやすくします。ウィジェット:
beginWidget('path.to.WidgetClass'); ?>...コンテンツ本体はウィジェットによって取得できます...
endWidget(); または
widget ('path.to.WidgetClass'); ? >;
$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 は、コントローラー インスタンスではなくウィジェット インスタンスを指します。
前回の記事 Yii フレームワーク開発の簡潔なチュートリアル (8) FormModel の使用では、Windows デスクトップ アプリケーションや ASP.Net と同様に、ユーザー送信イベントが CController を通じて処理されると述べましたが、Yii View (HTML Form) は WinForm に似ています。または Asp.Net のページです。コントロール クラス Controller は、Windows デスクトップ アプリケーションまたは Asp.Net のイベント処理 (分離コード) クラスに似ています。 厳密に言えば、Yii のビュー (HTML フォーム) を Windows デスクトップまたは Asp.Net ページの WinFrom と比較することはあまり適切ではありません。実際、Yii のビューの HTML (または本体) 全体は WinForm またはページ。 HTML Form は CActiveForm UI コンポーネントに対応する CWidget のサブクラスにすぎません。さらに、Yii には次の CWidget タイプが組み込まれています:
その中で、CJuiWidget (JQuery をカプセル化) と CInputWidget はさらに次のように分割されます。以下のチュートリアル Yii が提供する UI ウィジェットの使い方を 1 つずつ紹介します。これらの組み込み UI ウィジェットに加えて、Yii はカスタム UI ウィジェットもサポートしています。
上記は、PHP 開発フレームワーク Yii Framework チュートリアル (9) UI ウィジェット ウィジェットの概要の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。