Thinkphp 2 入門 (46)

WBOY
リリース: 2016-06-13 12:21:35
オリジナル
1028 人が閲覧しました

Thinkphp 2 入門 (46)

[操作処理なし]

次の図を見てください:

実際の状況:ユーザーコントローラー hello() メソッドがない場合

オブジェクトがこのクラスの存在しないメソッドにアクセスする場合、「マジックメソッド __call()」にアクセスします

ユーザーがアクセスする存在しない操作 - 》解決策:

を処理する各コントローラーの _empty() メソッドを定義します。 2 番目の解決策: no-op を定義します。

[空モジュール処理]

クラスを使用していますが、このクラスはまだインクルードされていません。

自動ロード メカニズムを通じて __autoload() を処理できます。自動ロード メカニズムがこのクラスを見つけられない場合、エラーが報告されます。

は空のモジュールをリクエストします

解決策 1: 空のコントローラー、空のモジュールを定義します

解決策 2:

【関数ライブラリ ファイルをアプリケーションに追加する】

Common フォルダー内で、ここに関数ライブラリ ファイルを置きます

【モジュールのグループ化】

1. コントローラーがグループ設定を行います

2. テンプレートを表示グループ化する必要があります

3. 構成変数をグループ化する必要があります

4. config.php の設定

[操作前、操作後]

の場合コントローラー内のメソッドが呼び出されると、呼び出しの前後に、プレオペレーションおよびポストオペレーションと呼ばれる追加の作業を実行できます

この URL: http://URL/index をリクエストします。 php/Admin/Goods/zhanshi メソッドが存在する場合、このアクションは App.class.php の exec() メソッド内でどこで行われますか?

は zhanshi() の実行時に最初に実行できます。

の後処理は、

の実行後に実行できます。

クラスには多くのメソッドがあり、そのすべてで前操作と後操作が必要になります。この問題はどのように解決すればよいでしょうか。

解決策:

[クロスモジュール呼び出し]

存在しないクラスのインスタンス化は、__autoload() メカニズムを通じて自動的にロードされます。 。

tp フレームワークの __autoload() はどこにありますか? Think.class.php

で、A() メソッド

A('Module Controller') を通じてコン​​トローラー オブジェクトをインスタンス化します。 例: A('Goods')

A('group/controller') 例: A('home/Ucenter');

A('project://group/controller') 例: A('shop://home/ Ucenter');

A() メソッドには import() メソッドへの呼び出しがネストされています。このメソッドは、対応するコントローラーを取得し、そのコントローラーの導入を要求するのに役立ちます。 A() メソッドは、オブジェクト

R ("project://group/controller/operation") メソッド

を直接インスタンス化し、インスタンス化されたコントローラーを導入します。オブジェクトとメソッド呼び出しはすべて継承されます。

R('モジュール コントローラー/操作') 例: A('グッズ')

R('グループ/コントローラー/操作') 例: A('home/Ucenter/ members');

R('project://group/controller/operation') 例: A('shop://home/Ucenter/members');

R() メソッド内で A() メソッドが呼び出されます

A() メソッド内で import() メソッドが呼び出されます

A() メソッドが使用されます

R() メソッドは

を使用します
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート