CFFUNCTION  
説明

CFML 内で呼び出すことのできる関数を定義します。ColdFusion コンポーネントのメソッドを定義するために必要です。

 
ヒストリ

ColdFusion MX 7: XML 値が returntype 属性に追加されました。

ColdFusion MX: このタグが追加されました。

 
カテゴリ

拡張タグ

 
シンタックス
<cffunction
   name = "methodName"
   returnType = "dataType"
   roles = "securityRoles"
   access = "methodAccess"
description = "function description"
output = "yes"、"no"
   displayName = "name"
   Hint = "hint text">
 
関連項目

cfargument、cfcomponent、cfinvoke、cfinvokeargument、cfobject、cfproperty、cfreturn

 
使用方法

cffunction タグを使用すると、ColdFusion のビルトイン関数と同じ方法で呼び出すことのできる関数を定義できます。

ColdFusion コンポーネント (CFC) のメソッドを定義するには、cffunction タグを使用する必要があります。

次の例は、ColdFusion Query オブジェクトを返す単純な CFC メソッドを定義するための cffunction タグの属性です。

<cffunction
   name="getEmployees"
   access="remote"
   returnType="query"
   hint="このクエリー結果は、従業員データベースの全レコードを返します。オプションの入力パラメータに基づい
て、このクエリー結果に対して詳細検索または絞り込み検索を行うことができます。"

ColdFusion コンポーネントに関する cffunction タグの使用方法については、『ColdFusion MX 開発ガイド』の第10章の「ColdFusion コンポーネントの作成と使用」 を参照してください。

roles 属性を指定した場合、この関数は、指定したロールのいずれかに所属するユーザーがログインした場合にのみ実行されます。

returnType 属性に variableName を指定した場合、この関数は、ColdFusion の変数ネーミング規則に沿った文字列を返さなければなりません。つまり、文字、アンダースコア (_)、あるいは Unicode 通貨記号で始まり、文字、数字、アンダースコア、ピリオド、Unicode 通貨記号のみから成る文字列を返す必要があります。ColdFusion は、その値が既存の ColdFusion 変数に対応するかどうかをチェックしません。

 
<cfcomponent>
   <cffunction name="getEmp">
       <cfquery 
            name="empQuery" datasource="ExampleApps" >
            SELECT FIRSTNAME, LASTNAME, EMAIL
            FROM tblEmployees
       </cfquery>
       <cfreturn empQuery>
   </cffunction>
   <cffunction name="getDept">
      <cfquery
name="deptQuery" datasource="ExampleApps" >
          SELECT *
          FROM tblDepartments
       </cfquery>
       <cfreturn deptQuery>
   </cffunction>
</cfcomponent>
NAME  
  必須
 

文字列です。cfcomponent タグ内で使用されるコンポーネントメソッドを指定します。

RETURNTYPE  
  Web サービスの場合は必須、その他の場合はオプション
 
Default value: " any"

タイプ名の文字列です。関数の戻り値のデータイプを指定します。

  • any
  • array
  • binary
  • boolean
  • date
  • guid - この引数は xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx という形式の UUID または GUID でなければなりません。x は 16 進数の 1 文字を表します (0 ~ 9、A ~ F)。
  • numeric
  • query
  • string
  • struct
  • uuid: この引数は xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx という形式の ColdFusion UUID でなければなりません。x は 16 進数の 1 文字を表します (0 ~ 9、A ~ F)。
  • variableName: ColdFusion 変数のネーミング規則に従った形式の文字列
  • void値を返しません。
  • xml: Web サービス関数で CFML XML オブジェクトと XML 文字列を返すことができます。
  • コンポーネント名: type 属性の値が上記のどれにも当てはまらない場合、ColdFusion はそれを ColdFusion コンポーネントの名前として扱います。関数を実行したときに、渡された引数が指定の名前を持つ CFC でない場合はエラーになります。
ROLES  
  オプション
 
Default value: """ (空)"

メソッドを呼び出すことができる ColdFusion セキュリティロールのリストをカンマで区切って指定します。指定のロールでログインしているユーザーだけがこの関数を実行できます。この属性を指定しない場合、すべてのユーザーがこのメソッドを呼び出すことができます。

ACCESS  
  オプション
 
Default value: "public"

メソッドを呼び出すことができるクライアントセキュリティコンテキストです。

  • private: メソッドを宣言するコンポーネント、および定義されているコンポーネントを拡張するコンポーネントだけで使用できます。
  • package: メソッド、コンポーネントを延長するコンポーネント、またはパッケージ内の他のコンポーネントを宣言するコンポーネントだけで使用できます。
  • public: ローカルで実行中のページまたはコンポーネントメソッドから使用できます。
  • remote: ローカルまたはリモートで実行中のページまたはコンポーネントメソッドから使用できる他に、URL、Flash、または Web サービスを介してリモートクライアントから使用することができます。関数を Web サービスとしてパブリッシュする場合、このオプションは必須です。
説明  
  オプション
 

関数を短いテキストで説明します。

OUTPUT  
  オプション
 
Default value: "関数の本文は標準の CFML として処理されます。"

関数がどのような条件下で HTML 出力を生成するかを指定します。

  • yes: 関数の本文全体が cfoutput タグ内にある場合と同様に処理されます。シャープ記号 (#) で囲まれた変数名は、自動的に実際の値に置き換えられます。
  • no: 関数が cfsilent タグ内にある場合と同様に処理されます。

この属性を指定しない場合、関数の本文は標準 CFML として処理されます。すべての変数は cfoutput タグ内に置く必要があります。

DISPLAYNAME  
  オプション
 

CFC メソッドのパラメータの場合にのみ意味があります。イントロスペクションを使用して CFC についての情報を示すときに、関数名に続く括弧内に表示される値です。

HINT  
  オプション
 

CFC メソッドのパラメータの場合にのみ意味があります。イントロスペクションを使用して CFC についての情報を示すときに表示されるテキストです。hint 属性の値は、関数の説明のシンタックス行の次に表示されます。