• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
ColdFusion | CFC
  1. Introduction
  2. Exemple : "users.cfc"
  3. Attributs du tag cfcomponent
  4. La fonction « onMissingMethod »

  1. Introduction
    ColdFusion permet le développement des composants orientés objet CFC (ColdFusion Components).

    Les fichiers CFC ont l'extension".cfc".

    Les CFCs peuvent avoir des champs (attributs ou propriétés) et des méthodes.

    Les méthodes peuvent avoir des arguments et retourner des valeurs.
  2. Exemple : "users.cfc"
    a) Concevoir le CFC "users"
    • Champs :
      • firstName

    • Méthodes :
      • getFirstName

      • setFirstName
    b) Implémenter le CFC "users" (fichier : users.cfc)

    - En utilisant la syntaxe CFML :

    - En utilisant CFScript :

    Notes : La méthode init représente le constructeur du CFC qui peut être exécuté implicitement lors de la création de l'objet.

    c) Instancier les fonctions du CFC "users" (fichier : users.cfm)

    Pour instancier un CFC, on peut utiliser les méthodes suivantes :
    • Utiliser l'opérateur « new » :

      Le constructeur sera automatiquement appelé.

    • Utiliser la fonction « createObject »

      Le constructeur ne sera pas appelé automatiquement et il faut invoquer explicitement la méthode « init ».


    • Utiliser le tag « cfobject »

      Le constructeur ne sera pas appelé automatiquement et il faut invoquer explicitement la méthode « init ».

    d) Invoquer les fonctions du CFC "users" (fichier : users.cfm)


    Important :
    • Pour respecter le principe d'encapsulation, il faut toujours utiliser la structure « VARIABLES » (et non pas la structure « THIS ») pour définir les variables d'instance du CFC. Ainsi ces variables seront considérées comme privées et ne peuvent être accéder qu'à partir des méthodes du CFC.

    • Il est pratique de définir un constructeur pour le CFC et retourner une référence vers l'instance créée.

    • Il est pratique de créer une variable (Structure) qui englobe toutes les variables d'instance (exemple fields). Cela permettra de mieux distinguer les variables d'instance (propriétés) des autres variables temporaires de la portée « VARIABLES ».
    NOTE :
    Il est possible d'utiliser le tag CFINVOKE pour invoquer les fonctions du CFC. Voici un exemple d'utilisation de ce tag :

    Si on ne sauvegarde pas une référence sur l'instance créée, ColdFusion détruit automatiquement cette instance après la fin d'exécution du tag CFINVOKE.
  3. Attributs du tag cfcomponent

    Attribut Requis Description
    output Cet attribut permet de préciser si le code du constructeur (mais pas le code des fonctions) peut générer du HTML.

    Voici les valeurs possibles pour cet attribut :
    • Si la valeur est « yes », alors le code du constructeur est interprété comme s'il a été mis à l'intérieur du tag cfoutput.

    • Si la valeur est « no », alors le code du constructeur est interprété comme s'il a été mis à l'intérieur du tag CFSilent.
    Si cet attribut est omis, alors le code du constructeur est interprété comme n'importe quel code CFM, et donc il faut utiliser le tag cfoutput si on a besoin de générer une sortie HTML.
    hint
    Cet attribut permet de donner une description au composant.

    Peut être affichée en lisant les informations du CFC en utilisant la réflexion.
    displayname
    Cet attribut permet de donner un nom au composant.

    Peut être affichée en lisant les informations du CFC en utilisant la réflexion.

    Attribut Requis Description
    extends
    (valeur par défaut : WEB-INF.CFTAGS.COMPONENT)

    Cet attribut permet de préciser le CFC parent.
    implements
    Cet attribut permet de préciser les interfaces que le CFC implémente.
    serializable
    (valeur par défaut : true)

    Cet attribut permet de préciser si le CFC peut être sérialisé.

    Attribut Requis Description
    accessors
    (valeur par défaut : « yes » si le CFC est persistent, sinon « no »)

    Si la valeur de cet attribut est « yes », alors il est possible d'utiliser des accesseurs (getters) et des mutateurs (setters) implicites pour lire ou modifier les champs du CFC.

    Si le CFC est persistent, la valeur sera forcée à « yes ».
    mappedSuperClass
    (valeur par défaut : « no »)

    Si le CFC est persistent, cet attribut ne peut avoir la valeur « no ».

    Si le CFC est non-persistent et la valeur de cet attribut est « yes », alors les autres CFCs qui héritent de cet CFC peuvent hériter ses propriétés.

    Attribut Requis Description
    wsdlfile
    Cet attribut permet de préciser un fichier WSDL autre que celui généré par ColdFusion.
    namespace
    (valeur par défaut : le nom du fichier du CFC)

    Cet attribut permet de préciser le namespace utilisé dans le fichier WSDL.
    serviceportname
    (valeur par défaut : le nom du fichier du CFC)

    Cet attribut permet de préciser la valeur de l'élément « port » du fichier WSDL.
    porttypename
    (valeur par défaut : le nom du fichier du CFC)

    Cet attribut permet de préciser la valeur de l'élément « porttype » du fichier WSDL.
    bindingname
    (valeur par défaut : le nom du fichier du CFC)

    Cet attribut permet de préciser la valeur de l'attribut « binding » de l'élément « port » du fichier WSDL.
    serviceaddress
    (valeur par défaut : URL du CFC)

    Cet attribut permet de préciser l'URL SOAP du service web.
    style
    (valeur par défaut : rpc)

    Cet attribut permet de préciser si le CFC utilise le « RPC-encoded style » ou le « Document-literal style » pour les services web.

    - Valeur « rpc » : RPC-encoded style

    - Valeur « document » : Document-literal style

    Attribut Requis Description
    alias Cet attribut permet de préciser l'alias à donner au CFC quand il est converti à un objet ActionScript 3.

    NOTE :
    Lorsqu'on utilise la syntaxe cfscript, il faut utiliser les métadonnées pour définir des valeurs aux attributs du CFC. Voici un exemple d'utilisation des métadonnées :

    La syntaxe pour préciser le nom de la métadonnée ressemble au style JavaDoc. Le nom de la métadonnée doit être précéder par le caractère @ et suivi par la valeur que l'on veut attribuer.
    Si le nom de la métadonnée ne correspond pas à un nom d'un attribut valide, alors ColdFusion le considéra comme n'importe quelle métadonnée que le programmeur peut ajouter au CFC.
  4. La fonction « onMissingMethod »
    La fonction « onMissingMethod » doit avoir le format Suivant :

    Cette fonction, s'elle est définie, est appelé automatiquement par ColdFusion quand on essaye d'invoquer une méthode qui n'est pas définie par le CFC.

    Exemple d'appel d'une fonction inexistante dans le CFC "users" :
    Résultat d'exécution du code :
    Si cette méthode « onMissingMethod » n'est pas définie, alors une exception ColdFusion sera déclenchée si la méthode appelée n'est pas définie par le CFC.

    Résultat d'exécution du code si la méthode « onMissingMethod » n'est pas définie:
© 2025  mtitek