ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP3.1でのウィジェットの使用について

ThinkPHP3.1でのウィジェットの使用について

不言
不言オリジナル
2018-06-19 16:12:511682ブラウズ

この記事では主に ThinkPHP3.1 でのウィジェットの新しい使い方を紹介します。必要な方は参考にしてください。

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

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

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

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

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

R メソッドの機能はモジュールの操作をリモートで呼び出すことですが、3.1 ではそれに新しい役割が与えられ、すべてのコントローラー層の操作メソッドの呼び出しをサポートできるようになりました。そのため、次のようにテンプレート内で Widget を呼び出すことができます。これ:

class TestWidget extends Action{
  public function hello($name=''){
    echo ("hello,".$name."!");
  }
 }

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

#
{:R('Test/hello',array('ThinkPHP'),'Widget')}

アクション コントロールに加えて、コントローラーの外部にある他のコントローラー層には URL 経由で直接アクセスできないため、この Widget メソッドは R メソッドを通じてのみ内部的に呼び出すことができます。

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

hello,ThinkPHP!

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

##

class TestWidget extends Action{
  public function hello($name=''){
    $this->assign('name',$name);
    $this->display('Test:hello');
  }
 }

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

Hello,{$name}!

この時点で、定義したばかりの hello テンプレート ファイルを Widget/Test/ ディレクトリに配置できます。

以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

php に基づいて Excel または CSV にエクスポートする方法

##

以上がThinkPHP3.1でのウィジェットの使用についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。