方法 A
メソッドを使用して内部でコントローラをインスタンス化し、次の形式を呼び出します: A('[project://][group/]module','controllerlayer name')
最も簡単な使用法:
は、現在のプロジェクトの UserAction コントローラーをインスタンス化することを意味します (このコントローラーに対応するファイルは、Lib/Action/UserAction.class にあります。) グループ モードが採用されており、別の Admin グループ コントローラーをインスタンス化したい場合は、次のようにすることができます。使用:
プロジェクト間のインスタンス化もサポートされています (プロジェクト ディレクトリは同じレベルに維持する必要があります)
Admin プロジェクトでの UserAction コントローラーのインスタンス化を表します
バージョン .1 では階層型コントローラのサポートが追加されているため、A メソッドを使用して他のコントローラをインスタンス化することもできます。
UserEvent コントローラーをインスタンス化します (対応するファイルは Lib/Event/UserEvent.class にあります)。
コントローラーをインスタンス化した後、コントローラー内のメソッドを呼び出すことができますが、プロジェクトをまたがって呼び出す場合、操作メソッドが現在のコントローラーに対して特殊な変数操作を持っている場合、不明な点がいくつかあることに注意してください。パブリック呼び出しを必要とするコントローラー層は、依存関係が多すぎないように個別に開発することをお勧めします。
方法 B
これは、動作とともに発生し、次のような特定の動作を実行できる新しい関数です。
方法 C
方法 C は、Think が構成パラメーターを設定、取得、保存するために使用する方法であり、より頻繁に使用されます。
C メソッドを理解するには、まず Think の構成を理解する必要があります。これは、C メソッドのすべての操作が構成に関連しているためです。 Thinkの設定ファイルは配列形式で定義されています。
関数のオーバーロード設計のため、使用方法がたくさんありますが、一つずつ説明していきます。
パラメータを設定する
D メソッド
D メソッドは、最も一般的に使用されるメソッドです。これは、カスタム モデル クラスのインスタンス化に使用されます。これは、Think フレームワークによるモデル クラスのインスタンス化のカプセル化であり、シングルトン モードを実装し、プロジェクト間およびグループ呼び出しをサポートします。 . の呼び出し形式は次の
ようになります。
D('[プロジェクト://][グループ/]モデル','モデルレイヤー名')
メソッドの戻り値は、インスタンス化されたモデル オブジェクトです。
D メソッドは、モデル クラスを自動的に検出できます。カスタム モデル クラスが存在する場合は、カスタム モデル クラスがインスタンス化されます。存在しない場合は、Model 基本クラスがインスタンス化されます。同時に、インスタンス化されたモデルはインスタンス化されません。繰り返しインスタンス化され、変更されます。
D メソッドの最も一般的な使用法は、現在のプロジェクトのカスタム モデルをインスタンス化することです。例:
また、2 回目に呼び出されたときに再度インスタンス化する必要がないため、オブジェクトのインスタンス化のオーバーヘッドをある程度削減できます。
D メソッドは、グループやプロジェクト全体でのモデルのインスタンス化をサポートできます。例:
F メソッド
F メソッドは、実際には S メソッドのサブセットです。単純なデータ キャッシュにのみ使用され、ファイル形式のみをサポートします。キャッシュの有効期間はサポートされません。リターン メソッドを使用するため、効率は S メソッドよりも高くなります。 S 方式であるため、高速キャッシュ方式とも呼ばれます。
F メソッドの特徴は次のとおりです。
単純なデータ キャッシュ。
ファイルとして保存します。
データを返してキャッシュをロードします。
サブディレクトリのキャッシュと自動作成をサポートします。
キャッシュ削除と一括削除をサポートします。
書き込みおよび読み取りキャッシュ
G メソッド
Thinkphp が長い間、debug_start、debug_end メソッド、さらには Debug クラスを通じて完了する必要がある機能が、バージョン 3.1 では単純な G メソッドに置き換えられました。これは素晴らしいアップグレードです。
G 法の機能には、マーキング位置と間隔統計の 2 つの機能があります。具体的な使用方法を見てみましょう。
場所をマーク
します。
G メソッドの最初の使用法は、位置をマークすることです。例:
I メソッド
Thinkphp の I メソッドはバージョン 3.1.3 の新機能です。以前の 3.* バージョンを使用している場合は、3.1 クイック スタート チュートリアル シリーズの変数部分を直接参照できます。
概要
ご覧のとおり、I メソッドは Thinkphp の多数の 1 文字関数の新しいメンバーです。その名前は英語の入力 (input) に由来しています。主にシステム入力変数をより便利かつ安全に取得するために使用されます。どこでも使用できます。 . 利用形式は以下の通り
です。
I('変数の種類.変数名',['デフォルト値'],['フィルタ方法'])
変数タイプとは、次のようなリクエスト メソッドまたは入力タイプを指します。
get GETパラメータを取得
post POSTパラメータを取得
param は、GET、POST、または PUT パラメータを取得するリクエストのタイプを自動的に決定します
リクエストは REQUEST パラメータを取得します
put は PUT パラメータを取得します
セッションは $_SESSION パラメータを取得します
Cookie は $_COOKIE パラメータを取得します
サーバーは $_SERVER パラメータを取得します
globals は $GLOBALS パラメータを取得します
注: 変数の型では大文字と小文字が区別されません。
変数名では大文字と小文字が厳密に区別されます。
デフォルト値とフィルタリング方法はどちらもオプションのパラメータです。
使い方
について
I メソッドの使用法を説明するために、GET 変数タイプを例に挙げてみましょう。
L メソッド
L メソッドは、複数の言語が有効になっている場合に、現在の言語定義を設定および取得するために使用されます。
呼び出し形式:L('言語変数',['言語値'])
言語変数を設定
する
言語パッケージを使用して言語変数を定義するだけでなく、L メソッドを使用して言語変数を動的に設定することもできます。例:
M メソッド
M メソッドは、基本モデル クラスのインスタンスを作成するために使用されます。D メソッドとの違いは次のとおりです。
モデルクラスをカスタマイズする必要がなく、IO 負荷が軽減され、パフォーマンスが向上します。
、インスタンス化後に呼び出せるのは、基本モデル クラス (デフォルトは Model クラス) のメソッドのみです。
、インスタンス化時にテーブルのプレフィックス、データベース、データベース接続情報を指定できます。
D メソッドの能力は、カプセル化するカスタム モデル クラスの強力さに反映されます。しかし、Think フレームワークの新しいバージョンの基本モデル クラスがますます強力になるにつれて、M メソッドはより実用的になってきています。 Dメソッド。
M メソッドの呼び出し形式:
M('[基本モデル名:]モデル名','データテーブルプレフィックス','データベース接続情報')
M メソッドの具体的な用途を見てみましょう。
, 基本モデル(Model)クラスをインスタンス化
します。
モデルが定義されていない場合は、次のメソッドを使用して、操作用のモデル クラスをインスタンス化できます。
システムのモデル クラスは自動的にロードできるため、インスタンス化前にクラス ライブラリを手動でインポートする必要はありません。モデル クラス CommonModel は Model を継承する必要があります。 CommonModel クラスでいくつかの共通の論理メソッドを定義できるため、データ テーブルごとに特定のモデル クラスを定義する必要がなくなります。プロジェクトに既に 100 を超えるデータ テーブルがある場合、そのほとんどは基本的なものです。CURD 操作の場合、一部のモデルのみがデータ テーブルを定義します。カプセル化する必要がある複雑なビジネス ロジックがあるため、最初の方法と 2 番目の方法を組み合わせるのが良い選択です。
、テーブルのプレフィックス、データベース、その他の情報を渡します
M メソッドには 3 つのパラメーターがあります。最初のパラメーターはモデル名 (基本的なモデル クラスとデータベースを含めることができます)、2 番目のパラメーターはデータ テーブルのプレフィックスを設定するために使用されます (テーブルのプレフィックスを取得するには空白のままにします) 3 番目のパラメータは、現在使用されているデータベース接続情報を設定するために使用されます (現在のプロジェクトで設定されているデータベース接続情報を取得するには空白のままにします)。例:
R メソッド
R メソッドは、特定のコントローラーの操作メソッドを呼び出すために使用されます。これは、A メソッドをさらに拡張および補足するものです。方法Aの使用方法はこちらをご覧ください。
R メソッドの呼び出し形式:
R('[プロジェクト://][グループ/]モジュール/オペレーション','パラメーター','コントローラー層名')
たとえば、操作メソッドを次のように定義します。
次に、R メソッド呼び出しを使用します。
言い換えると、R メソッドの 3 番目のパラメーターは、呼び出しのコントローラー層の指定をサポートしています。
同時に、R メソッドは、操作メソッドを呼び出すときに操作サフィックス設定 C ('ACTION_SUFFIX') をサポートできます。操作メソッド サフィックスを設定しても、R メソッドの呼び出しメソッドを変更する必要はありません。
S メソッド
S メソッドは、次のような現在のキャッシュ メソッドのキャッシュ パラメータの受け渡しもサポートしています。
T メソッド
テンプレート ファイルをより便利に出力するために、新しいバージョンでは、テンプレート ファイル名を生成する T 関数がカプセル化されています。
使用方法:
T([Resource://][Module@][Theme/][Controller/]Operation,[View Hierarchy])
T 関数の戻り値は完全なテンプレート ファイル名であり、出力をレンダリングするための表示およびフェッチ メソッドで直接使用できます。
例:
U メソッド
U メソッドは、URL アドレスの組み立てを完了するために使用されます。その特徴は、現在の URL モードと設定に基づいて、対応する URL アドレスを自動的に生成できることです。形式は次のとおりです。
U('アドレス','パラメータ','疑似静的','ジャンプするかどうか','表示ドメイン名');
ハードコードされた URL アドレスを修正する代わりにテンプレートで U メソッドを使用する利点は、環境が変わったりパラメータ設定が変更された場合でも、テンプレート内のコードを変更する必要がないことです。
テンプレート内の呼び出し形式は {:U('address', 'parameter'...)} である必要があります。
U メソッドの使用例:
グループ通話もサポートできます。
もちろん、現在のモジュールの呼び出しを示す操作名を単に記述することもできます。
グループ、モジュール、操作の名前に加えて、いくつかのパラメータを渡すこともできます。
U メソッドの 2 番目のパラメータは、受信パラメータをサポートし、配列と文字列の 2 つの定義メソッドをサポートします。文字列パラメータのみの場合は、最初のパラメータで定義できます。次のメソッドはすべて同等です。:
ただし、次の定義メソッドではパラメータを渡すことはできません。
プロジェクトの異なる URL 設定に従って、同じ U メソッド呼び出しで、次のような異なる URL アドレス効果をインテリジェントに生成できます。
この定義は一例です。
現在の URL が通常モードに設定されている場合、最後に生成された URL アドレスは次のとおりです。
現在の URL が PATHINFO モードに設定されている場合、同じメソッドで生成される最終 URL は次のようになります: http://サーバー名 /index./Blog/read/id/1
現在の URL が REWRITE モードに設定されている場合、同じ方法で最終的に生成される URL アドレスは次のようになります: http://serverName/Blog/read /id /1
PATHINFO 区切り文字も設定した場合:
生成されます
現在の URL が REWRITE モードに設定され、擬似静的サフィックスが html に設定されている場合、同じメソッドで生成される最終的な URL アドレスは次のようになります。
複数の擬似静的サポートが設定されている場合、最初の擬似静的サフィックスが URL アドレスの末尾に自動的に追加されます。もちろん、U メソッドで生成される擬似静的サフィックスを手動で指定することもできます例:
生成されます
U メソッドはルーティングもサポートできます。ルーティング ルールを定義すると、次のようになります。
それでは使用できます
最終的に生成される URL アドレスは次のとおりです。
アプリケーションに複数のサブドメインの操作アドレスが含まれる場合は、U メソッドでアドレスを生成する必要があるドメイン名を指定することもできます。
@ の後に指定する必要があるドメイン名を渡すだけです。
さらに、U メソッドの 5 番目のパラメーターが true に設定されている場合、現在のドメイン名が自動的に認識され、現在のアドレスのサブドメイン名がサブドメイン名の展開設定 APP_SUB_DOMAIN_DEPLOY および APP_SUB_DOMAIN_RULES に基づいて自動的に生成されることを意味します。
URL_CASE_INSENSITIVE がオンの場合、小文字の URL アドレスが均一に生成されます。