ホームページ  >  記事  >  バックエンド開発  >  Thinkphp内部関数ADSL​​CFUIショートカットメソッド完全解析_PHPチュートリアル

Thinkphp内部関数ADSL​​CFUIショートカットメソッド完全解析_PHPチュートリアル

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

ThinkPHP では、よく使用されるいくつかの操作のショートカット メソッドが定義されており、これらのメソッドには覚えやすい 1 文字のメソッド名が付けられています。非常に興味深いのは、これらのショートカット メソッドの文字には ADSL という文字が含まれているため、これらを ADSL メソッドと呼ぶことです。これらのショートカット メソッド A、D、S、L、C、F、U、I はすべて /THINKPHP/Common/functions.php ファイルにあります。以下にそれぞれの機能と使用法を説明します。

A() はアクションクラスをロードします
D() は Model クラスをロードします
S() グローバルキャッシュ構成
L() は言語定義を取得します
C() 設定値を取得
F() は、単純なタイプのデータ、文字列、配列の高速ファイルデータの読み取りと保存
U() は URL アドレスの組み立てを完了するために使用されます
I() はオブジェクト インスタンスをすばやく作成します

1.A アクションオブジェクトを素早く作成する

$action=new UserAction();// $action=A("User"); と書くのと同じです また、現在の UserAction クラスが導入されていない場合は、自動的に A メソッドが導入されます。また、シングルトン モードをサポートしているため、同じ Action オブジェクトが繰り返し作成されることはありません。

メソッドはプロジェクト間の呼び出しをサポートしています。例:

$action=A("User",'Admin'); // Admin プロジェクトの UserAction クラスをインスタンス化します

2.D モデルデータオブジェクトを素早く作成

まず UserModel などのモデル クラスを定義し、次に D() 関数を使用してデータを操作できます。例:

まず、次の内容を含む UserModel.class.php という名前の PHP スクリプトを「Your Project」/Lib/Model の下に作成します。
クラス UserModel はモデルを拡張します{}

その後、属性やメソッドを追加せずに、次の操作を実行できます:


$User=D("User"); //User オブジェクトをインスタンス化します。User はデータベース内に作成した "prefix_user" という名前のデータ テーブルです。インスタンス化操作には、代わりに $User=new UserModel() を使用することもできます。オブジェクト。インスタンス化後は、次のようなデータの追加、削除、確認、変更などの一連の操作を実行できます。
$User->find(1); //主キー 1 のレコードを検索します

ユーザーのゴールドコインやポイント、投票を行う場合は、指定されたフィールドに1を追加する必要があります。その後、次のように書くことができます

$User->score='(score+1)';$s->save(); これにより、多くの手順が節約されます。

指定したフィールドを変更する場合は、次のように省略できます:

D('ユーザー')->setField('名前','へへ','id=2');

D メソッドと M メソッドの主な違いは次のとおりです:

M メソッドはモデル クラス ファイルを作成する必要はありません。そのため、自動検証はデフォルトでは無効ですが、D メソッドはモデル クラスを作成する必要があります。データテーブルのマッピングオブジェクトを作成するには、次の 2 つのメソッドを使用します。

最初のタイプ: $Test=D('Test');

2 番目のメソッド: $Test=new Model('Test');

どちらもデータに対して選択、挿入、削除、更新操作を実行できますが、最初の方法を使用してモデルをインスタンス化すると、データ チェック機能が追加されます。タイトルが存在しません 入力すると、「タイトルを入力してください」と表示されます (これは tp が提供する自動検証機能です。もちろん、検証条件も対応するモデルで定義する必要があります)。

D メソッドはモデル クラスを自動的に検出でき、モデル クラスが存在しない場合は例外をスローします。同時に、インスタンス化されたモデルは繰り返しインスタンス化されません (単一のケース)。デフォルトの D メソッドは、現在のプロジェクト (またはアプリケーション) でのモデルの呼び出しのみをサポートします。例:

$user=新しいUserModel();

$user=D('user');

と同等

空のモデルがインスタンス化される場合、たとえば:

$Demo=新しいモデル();

この場合、次と同等になります:

$デモ=M();

3.S クイック操作キャッシュ方法

ThinkPHP は、さまざまなキャッシュ メソッドを呼び出し用の統合キャッシュ クラスに抽象化し、すべてのキャッシュ メカニズムを操作用の S メソッドに統合します。そのため、異なるキャッシュ メソッドを使用するときに、特定のキャッシュの詳細に注意を払う必要はありません。例:
S('data',$Data); //データ識別子を使用して $Data データをキャッシュします
S('data',$Data,3600); // $Data データを 3600 秒間キャッシュします

$Data=S('data') //キャッシュされたデータを取得します

S('name',null) // キャッシュ識別子名を削除します


4.L 言語変数を素早く操作する

L メソッドは多言語サポートを提供し、言語定義を迅速に設定および取得できます。

L('USER_INFO','ユーザー情報') //USER_INFO という名前の言語変数を設定します

L('USER_INFO'); //USER_INFO の言語変数値を取得します

//バッチ代入

$array['USER_INFO']='ユーザー情報';$array['ERROR_INFO']='エラー情報'; L($配列);


5.C 設定変数を素早く操作します。使い方はCです(「ここに設定ファイルの配列の添え字を記入します」)

C('USER_AUTH_ON',true); //USER_AUTH_ON という名前の構成パラメータを設定します C('USER_AUTH_ON'); //USER_AUTH_ON の変数値を取得します

Lと同様に、Cもバッチ代入をサポートしています


注: 設定パラメータは大文字と小文字が区別されません

さらに、バージョン 1.5 以降、C メソッドは次のような 2 次元配列の操作もサポートします。

C('USER.USER_TYPE',1); C('USER.USER_AUTH_ON');

6.Fファイルデータ保存方法

F メソッドは主にプロジェクトのファイル データの書き込み、変更、削除に使用されます。その動作メカニズムは S メソッドと似ていますが、目的が異なり、データが保存されるディレクトリも異なります。デフォルトはファイル形式でデータを保存するため、キャッシュ方法は指定できません。 F メソッドは var_export メソッドを使用するため、単純なデータ型のみをサポートし、オブジェクト キャッシュをサポートしません。

7. U は、現在の URL モードと設定に基づいて、対応する URL アドレスを自動的に生成できるという特徴があります。

この関数の形式は次のとおりです: U('address','parameter','pseudo-static','ジャンプするかどうか','表示ドメイン名'); テンプレートで固定の代わりに U メソッドを使用する利点ハードコードされた URL アドレスは、環境が変更されたりパラメーター設定が変更されたりしても、テンプレート内のコードを変更する必要がないことを意味します。テンプレート内の呼び出し形式は、{:U('address', 'parameter'...)} の形式である必要があります。 Uメソッドの使用例:

U('User/add') // Userモジュールの追加操作アドレスを生成します

グループ通話もサポートできます:

U('Home/User/add') // Home グループの User モジュールの追加操作アドレスを生成します

もちろん、現在のモジュールの呼び出しを示すために単に操作名を書くこともできます

U('add') // 現在のアクセスモジュールの追加操作アドレスを生成します

グループ名、モジュール名、操作名に加えて、いくつかのパラメータを渡すこともできます:

U('Blog/read?id=1') // ブログモジュールの読み取り操作とID 1のURLアドレスを生成します

U メソッドの 2 番目のパラメーターは受信パラメーターをサポートし、配列と文字列の 2 つの定義メソッドをサポートします。最初のパラメーターで文字列パラメーターのみを定義できる場合、次のメソッドは同等です。

U('ブログ/cate',array('cate_id'=>1,'status'=>1))

U('ブログ/カテゴリ','cate_id=1&status=1')

U('Blog/cate?cate_id=1&status=1')

興味がありそうな記事



PHPの文字列関数の全概要

PHPは連続数値(文字)配列関数を生成します range()分析、PHP宝くじプログラム関数

    thinkphp のアクション コントローラーのシステム定数の概要
  • 変数と関数の前に static キーワードを追加した後の PHP の違い
  • PHP filter_var() 関数 フィルター関数
  • PHP 圧縮 HTML Web ページ コードにより、ネットワーク データ送信の量が削減されます。スペース、タブ、コメント マークをクリアします
  • thinkphp の自動検証と無効な解決策の自動入力
  • curl の post メソッドを使用してデータを送信し、PHP で Web ページ データを取得します メソッドの概要
  • http://www.bkjia.com/PHPjc/764160.html
www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/764160.html技術記事 ThinkPHP では、よく使用されるいくつかの操作に対してショートカット メソッドが定義されており、これらのメソッドには覚えやすい 1 文字のメソッド名が付けられています。これらのショートカットの単語は非常に興味深いです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。