ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP3.1 でのウィジェットの新しい使用法_PHP チュートリアル

ThinkPHP3.1 でのウィジェットの新しい使用法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:24:45745ブラウズ

ThinkPHP3.0 バージョンのウィジェットは、アクションとビューのサポートが比較的不十分で、基本的なテンプレートのレンダリング出力しか実現できません。バージョン 3.1 のリリースによってもたらされたマルチレイヤー MVC 機能は、ウィジェットの実装方法に新しいアイデアをもたらしました。その実装方法を見てみましょう。

ThinkPHP 3.1 ではマルチレイヤー MVC のサポートが追加されているため、バージョン 3.1 ではマルチレイヤー コントローラー機能をサポートできるため、コントローラー レイヤーに別のレイヤーであるウィジェット レイヤーを追加できます。

まず、プロジェクトのLibディレクトリ配下にWidgetディレクトリを作成し、以下のようにTestWidgetクラス(Lib/Widget/TestWidget.class.php)を作成します。

リーリー
TestWidget と以前のものの違いは、Widget クラスを継承せず、Action クラスを直接継承することです。これは、テンプレートのレンダリング出力を含め、Action メソッドを TestWidget で直接呼び出すことができることを意味します。

定義が完了したら、このウィジェットをどのように呼び出しますか? W メソッドは絶対に機能しません。今回は R メソッドが必要です。

R メソッドの機能はモジュールの操作をリモートで呼び出すことですが、3.1 ではすべてのコントローラー層の操作メソッドの呼び出しをサポートできる新しい機能が追加されました。そのため、次のようにテンプレートでウィジェットを呼び出すことができます。

リーリー
ページ上の特定の領域で出力を実現できます:

リーリー
アクション コントローラーを除く他のコントローラー層には URL を通じて直接アクセスできないため、このウィジェット メソッドは R メソッドを通じてのみ内部的に呼び出すことができます。

TestWidget クラスで Model を呼び出して他のデータを出力できます。独自のテンプレートをレンダリングする必要がある場合は、表示メソッドを直接呼び出すことができます。

リーリー
プロジェクトの Tpl/Test/ ディレクトリの下に hello (Tpl/Test/hello.html) テンプレート ファイルを作成し、出力を追加します。

リーリー
前のウィジェットと同様にテンプレートファイルを現在のディレクトリに置きたい場合は、次を使用できます:

リーリー
この時点で、先ほど定義した hello テンプレート ファイルを Widget/Test/ ディレクトリの下に置くことができます。

http://www.bkjia.com/PHPjc/825369.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/825369.html技術記事 ThinkPHP3.0 バージョンのウィジェットのアクションとビューのサポートは比較的不十分で、基本的なテンプレートのレンダリング出力しか実現できません。バージョン 3.1 のリリースによってもたらされたマルチレイヤー MVC 機能により、...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。