CFCOMPONENT  
Description
Creates and defines a component object; encloses functionality that you build in CFML and enclose within cffunction tags. This tag contains one or more cffunction tags that define methods. Code within the body of this tag, other than cffunction tags, is executed when the component is instantiated.
A component file has the extension CFC and is stored in any directory of an application.
A component method is invoked in the following ways:
  • Within the cfinvoke tag in a ColdFusion page
  • Within a URL that calls a CFC file and passes a method name as a URL parameter
  • Within the cfscript tag
  • As a web service
  • From Flash code
 
Category
Extensibility tags
 
Syntax
<cfcomponent
   extends ="anotherComponent"
   output = "yes" or "no"
   displayname = "text string">
   hint = "text string">
   variable declarations
   <cffunction ...>
      ...
   </cffunction> 

   <cffunction ...>
      ...
   </cffunction> 
</cfcomponent>
 
See also
cfargument, cffunction, cfinvoke, cfinvokeargument, cfobject, cfproperty, cfreturn, Chapter 11, "Building and Using ColdFusion Components," in Developing ColdFusion MX Applications
 
Usage
If you specify the extends attribute, the data and methods of the parent component are available to any as if they were parts of the current component. If the managerCFC component extends the employeeCFC component, and the employeeCFC component has a getEmployeeName method, you can call this method using the managerCFC, as follows:
<cfinvoke component="managerCFC" method="getEmployeeName" 
returnVariable="managerName" EmployeeID=#EmpID#>
This tag requires an end tag.
 
Example
<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>
EXTENDS  
  Optional
 

Name of parent component from which to inherit methods and properties.

OUTPUT  
  Optional
 
Default value: "Component body displayable text is processed as standard CFML"

Specifies whether constructor code in the component can generate HTML output; does not affect output in the body of cffunction tags in the component.

  • yes: Constructor code is processed as if it were within a cfoutput tag. Variable names surrounded by number signs (#) are automatically replaced with their values.
  • no: Constructor code is processed as if it were within a cfsilent tag.
  • If you do not specify this attribute, constructor code is processed as standard CFML. Any variables must be in cfoutput tags.
DISPLAYNAME  
  Optional
 
Default value: "name attribute value"

A string to be displayed when using introspection to show information about the CFC. The information appears on the heading, following the component name.

HINT  
  Optional
 

Text to be displayed when using introspection to show information about the CFC. The hint attribute value appears below the component name heading. This attribute can be useful for describing the purpose of the parameter.