Before you develop a ColdFusion application, you must determine how to structure the application and how to handle application-wide needs and issues. In particular, you must consider all of the following:
The application framework is the overall structure of the application and how your directory structure and application pages reflect that structure. You can use a single application framework to structure multiple ColdFusion applications into a single website or Internet application. You can structure a ColdFusion application by using many methodologies. For example, the Fusebox application development methodology is one popular framework for developing ColdFusion web applications. (For more information on Fusebox, see www.fusebox.org.)
This chapter does not provide information on how to use or develop a specific application framework. However, it does discuss the tools that ColdFusion provides for building your framework, including the Application.cfc file, how an application's directory structure affects the application, and how you can map the directory structure. For more information on mapping the application framework, see Structuring an application.
ColdFusion provides a variety of reusable elements that you can use to provide commonly used functionality and extend CFML. These elements include the following:
For an overview of these elements, and information about how to choose among them, see Creating ColdFusion Elements.
The following ColdFusion variable scopes maintain data that lasts beyond the scope of the current HTTP request:
Variable scope |
Variables available |
---|---|
Server |
To all applications on a server and all clients |
Application |
To all pages in an application for all clients |
Client |
For a single client browser over multiple browser sessions in one application |
Session |
For a single client browser for a single browser session in one application |
For more information on using these variables, including how to use locks to ensure that the data they contain remains accurate, see Using Persistent Data and Locking.
Application events are specific occurrences during the life cycle of an application. Each time one of these events occurs, ColdFusion runs the corresponding method in your Application.cfc file (also referred to as the application CFC). The Application.cfc file defines application settings and implements methods to handle the application events.
You can implement application CFC methods to handle the following events:
.
Event |
Trigger |
---|---|
Application start |
ColdFusion starts processing the first request for a page in an application that is not running. |
Application end |
An application time-out setting is reached or the server shuts down. |
Session start |
A new session is created as a result of a request that is not in an existing session. |
Session end |
A session time-out setting is reached. |
Request start |
ColdFusion receives a request, including HTTP requests, messages to the event gateway, SOAP requests, or Flash Remoting requests. |
Request |
Immediately after ColdFusion finishes processing the request start event. The handler for this event is intended for use as a filter for the request contents. For more information on the differences between request start and request events, see Managing requests in Application.cfc. |
Request end |
ColdFusion finishes processing all pages and CFCs for the request. |
Exceptions |
An exception occurs that is not handled in a try/catch block. |
The Application.cfc file can also define application-wide settings, including the application name and whether the application supports Session variables.
For more information on using application events and the Application.cfc file, see Defining the application and its event handlers in Application.cfc.
This section describes the techniques used prior to ColdFusion MX 7 to define application-level settings, variables, and functions. Adobe recommends that you do not use these techniques in new code that you write; instead, you should use the Application.cfc file and its variables and methods, which provide more features and include logical, hierarchical structure.
If you do not have an Application.cfc file, ColdFusion processes the following two pages, if they are available, every time it processes any page in the application:
The Application.cfm page can define the application. It can contain the cfapplication tag that specifies the application name, and code on this page is processed for all pages in the application. This page can define application-level settings, functions, and features.
The OnRequestEnd.cfm page is used in fewer applications than the Application.cfm page. It lets you provide common clean-up code that gets processed after all application pages, or specify dynamic footer pages.
For more information on the Application.cfm and OnRequestEnd.cfm pages, see Using an Application.cfm page. For information on placing these pages in the application directory structure, see Structuring an application.