CFCOMPONENT  
説明

コンポーネントオブジェクトを作成および定義します。また、CFML で構築し、cffunction タグ内に囲んだ機能を囲みます。このタグ内には、メソッドを定義している複数の cffunction タグを指定できます。このタグの本文内に指定された cffunction タグ以外のコードは、コンポーネントのインスタンスを作成するときに実行されます。

コンポーネントファイルには CFC という拡張子が付けられ、アプリケーションの任意のディレクトリに保管されます。

コンポーネントメソッドは、次の方法で呼び出されます。

  • ColdFusion ページの cfinvoke タグ内で
  • CFC ファイルを呼び出す URL 内でメソッド名を URL パラメータとして渡す
  • cfscript タグ内で
  • Web サービスとして
  • Flash コードから
 
カテゴリ

拡張タグ

 
シンタックス
<cfcomponent
   extends ="anotherComponent"
   output = "yes"、"no"
   style = "rpc"、"document"
   namespace = "default service namespace"
   serviceportname = "port element name"
   porttypename = "porttype element name"
   bindingname = "binding element name"
   wsdlfile = "path to hard-coded wsdl file"
   displayname = "text string">
   hint = "text string">
   variable declarations
   <cffunction ...>
      ...
   </cffunction> 

   <cffunction ...>
      ...
   </cffunction> 
</cfcomponent>
 
関連項目

cfargument、cffunction、cfinvoke、cfinvokeargument、cfobject、cfproperty、cfreturn、『ColdFusion MX 開発ガイド』の第10章の「ColdFusion コンポーネントの作成と使用」

 
ヒストリ

ColdFusion MX 7:

  • ドキュメントリテラルスタイルの Web サービスを発行できるようになりました。
  • style、namespace、serviceportname、porttypename、wsdlfile、および bindingname の各属性が追加されました。
  • ドキュメントリテラルスタイルの Web サービス発行時の hint 属性と displayname 属性の機能が拡張されました。

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

 
使用方法

extends 属性を指定した場合は、親コンポーネントのデータとメソッドを、現在のコンポーネントの一部であるかのように CFC メソッドに使用できます。たとえば managerCFC コンポーネントが employeeCFC コンポーネントを拡張していて、employeeCFC コンポーネントが getEmployeeName メソッドを備えている場合は、次のようにして managerCFC からこのメソッドを呼び出すことができます。

<cfinvoke component="managerCFC" method="getEmployeeName" returnVariable="managerName" 
EmployeeID=#EmpID#>

このタグには終了タグが必要です。

style="document" を指定した場合、ColdFusion MX は CFC をドキュメントリテラルスタイルの Web サービスとして発行します。詳細については、『ColdFusion MX 開発ガイド』の第36章の「Web サービスの使用」 の「ドキュメント-リテラルスタイルの Web サービスの公開」を参照してください。

 
<cfcomponent>
   <cffunction name="getEmp">
       <cfquery name="empQuery" datasource="cfdocexamples" >
          SELECT FIRSTNAME, LASTNAME, EMAIL
          FROM tblEmployees
       </cfquery>
       <cfreturn empQuery>
   </cffunction>

   <cffunction name="getDept">
      <cfquery name="deptQuery" datasource="cfdocexamples" >
          SELECT *
          FROM tblDepartments
       </cfquery>
       <cfreturn deptQuery>
   </cffunction>
</cfcomponent>
EXTENDS  
  オプション
 

メソッドとプロパティを継承する親コンポーネントの名前です。

OUTPUT  
  オプション
 
Default value: "コンポーネント本体の表示可能テキストを標準 CFML として処理します。"

コンポーネント内のコンストラクタコードが HTML 出力を生成できるかどうかを指定します。そのコンポーネント内にある cffunction タグ本文の中の出力には影響しません。

  • yes: コンストラクタコードは cfoutput タグ内にある場合と同様に処理されます。シャープ記号 (#) で囲まれた変数名は、自動的に実際の値に置き換えられます。
  • no: コンストラクタコードは cfsilent タグ内にある場合と同様に処理されます。
  • この属性を指定しない場合、コンストラクタコードは標準 CFML として処理されます。すべての変数は cfoutput タグ内に置く必要があります。
STYLE  
  オプション
 
Default value: "rpc"

Web サービスに使われる CFC で RPC エンコードスタイルまたはドキュメントリテラルスタイルを使用するかどうかを指定します。

  • rpc: RPC エンコードスタイルを使用します。
  • document: ドキュメントリテラルスタイルを使用します。
NAMESPACE  
  オプション
 
Default value: "classname"

CFC をドキュメントリテラルスタイルの Web サービスとして使用するときに WSDL で使われるネーム空間を指定します。この属性を指定しない場合、ColdFusion MX はこの値を CFC クラス名から取得します。

 

この属性は、style="document" の場合にのみ適用されます。

SERVICEPORTNAME  
  オプション
 

WSDL の port 要素の name 属性を指定します。この属性を指定しない場合、ColdFusion MX はこの値を CFC クラス名から取得します。

 

この属性は、style="document" の場合にのみ適用されます。

PORTTYPENAME  
  オプション
 

WSDL の porttype 要素の name 属性を指定します。この属性を指定しない場合、ColdFusion MX はこの値を CFC クラス名から取得します。

 

この属性は、style="document" の場合にのみ適用されます。

BINDINGNAME  
  オプション
 

WSDL の port 要素の binding 属性を指定します。この属性を指定しない場合、ColdFusion MX はこの値を CFC クラス名から取得します。

 

この属性は、style="document" の場合にのみ適用されます。

WSDLFILE  
  オプション
 

ColdFusion MX で生成された WSDL の代わりに使用する、正しい形式の WSDL です。

 

この属性は、style="document" の場合にのみ適用されます。

DISPLAYNAME  
  オプション
 

イントロスペクションを使用して CFC についての情報を示すときに表示される文字列です。この情報は、コンポーネント名に続けて見出しの上に表示されます。

 

style 属性をドキュメントに対して設定した場合、ColdFusion MX は WSDL の service 要素の name 属性として、displayname 属性を使用します。

HINT  
  オプション
 

イントロスペクションを使用して CFC についての情報を示すときに表示されるテキストです。hint 属性の値は、コンポーネント名の見出しの下に表示されます。この属性は、パラメータの目的を説明するのに役立ちます。

 

style 属性をドキュメントに対して設定した場合、ColdFusion MX は WSDL の documentation 要素のコンテンツとして hint 属性を使用します。