Le CFC « Application.cfc » remplace le fichier « application.cfm » et « OnRequestEnd.cfm ».
Ce CFC définit plusieurs méthodes que le développeur peut implémenter pour écrire un code spécifique suite à un événement particulier.
Par exemple, on peut implémenter la méthode « onRequestStart » pour écrire un code qui sera exécuté à chaque nouvelle requête http.
Le tableau suivant résume les méthodes que vous pouvez
implémenter dans « Application.cfc » :
Nom de la méthode
|
La méthode est exécutée
|
onServerStart
|
au démarrage du serveur ColdFusion.
|
onApplicationStart
|
une seule fois, au démarrage de l'application :
suite à la réception de la première requête http,
ou à l'exécution du premier CFC invoqué par une instance de la Gateway, un service web, ou un CFC Flash distant.
|
onApplicationEnd
|
une seule fois, à l'arrêt de l'application.
|
onSessionStart
|
une seule fois, au démarrage d'une nouvelle session
|
onSessionEnd
|
une seule fois, à l'arrêt de chaque session
|
onRequestStart
|
au démarrage de chaque nouvelle requête
|
onRequest
|
à l'fin d'exécution de la méthode « onRequestStart ».
|
onRequestEnd
|
à la fin de traitement de toutes les pages impliquées par la requête.
|
onCFCRequest
|
si un appel http ou AMF est fait sur l'application.
|
onError
|
quand une exception est soulevée et non interceptée par un bloc try/catch.
|
onMissingTemplate
|
quand la page requêtée est non-existante.
|
Le CFC «
Application.cfc
» est exécuté par ColdFusion à la réception de chaque nouvelle requête.
Les méthodes citées ci-dessus doivent être implémentées pour que ColdFusion les exécutent.
En plus, elles doivent respecter la signature (nom + paramètres) définies par ColdFusion.
ColdFusion reconnait aussi des noms de variables d'application (name, datasource)
qui peuvent être utilisées pour configurer l'application (nom de l'application, paramètres de la source de données, paramètres des sessions).
Ces variables ont la portée «
THIS
» du CFC «
Application.cfc
».
Exemple :
Lorsqu'une requête est reçue par ColdFusion, les actions suivantes seront executees dans l'ordre suivant :
-
ColdFusion vérifie si un fichier «
Application.cfc
» est existant.
-
Si le CFC «
Application.cfc
» définit la méthode onApplicationStart
,
alors elle sera exécutée à condition qu'elle ne soit pas déjà exécutée auparavant.
Ainsi, chaque application (identifiée par son nom unique) est garantie d'avoir une et une seule exécution de cette méthode.
-
Si le CFC «
Application.cfc
» définit la méthode onSessionStart
et la gestion des sessions est active,
alors elle sera exécutée à condition qu'elle ne soit pas déjà exécutée auparavant.
Ainsi, chaque session est garantie d'avoir une et une seule exécution de cette méthode.
-
Si le CFC «
Application.cfc
» définit la méthode onRequestStart
, alors elle sera exécutée.
Ainsi, chaque nouvelle requête est garantie d'avoir une et une seule exécution de cette méthode.
-
ColdFusion exécute la page cible de la requête.
-
Si le CFC définit la méthode
onRequestEnd
, alors elle sera exécutée.
Ainsi, chaque nouvelle requête est garantie d'avoir une et une seule exécution de cette méthode.
-
ColdFusion retourne la réponse au client.
Note :
Si le CFC «
Application.cfc
» définit la méthode
onRequest
,
alors elle sera exécutée après l'exécution de la méthode
onRequestStart
.
Ainsi, chaque nouvelle requête est garantie d'avoir une et une seule exécution de cette méthode.
Cette méthode peut être utilisée dans des cas particuliers où on souhaite, par exemple, faire plus de contrôle sur la page appelée et/ou sur la réponse qui sera retournée au client.