Problème cfinvoke

mandaillou Messages postés 53 Date d'inscription dimanche 26 novembre 2000 Statut Membre Dernière intervention 17 février 2006 - 17 févr. 2006 à 15:47
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013 - 17 févr. 2006 à 21:29
Salut
J'ai un problème dont la solution est sûrement très simple mais qui me bloque depuis un petit moment.
Comment faire invoquer un composant qui n'est pas dans le même répertoire que le fichier qui l'appelle.
Je voudrais faire un truc du genre :
cfinvoke component="../mon_repertoire/mon_composant.cfc" mais coldfusion n'accepte pas.
Merci

1 réponse

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
17 févr. 2006 à 21:29
Hello mandaillou,

c'est normal, pour pouvoir faire appel à un composant il faut qu'il soit placé dans un répertoire que tu déclares au niveau de l'admin du serveur.
Pour faire ce genre d'opération tu vas dans ton admin de cfmx, menu Extension>> CustomTagPath.
Là tu browses simplement le répertoire qui va contenir tes composants.
Ex : C:\monsite\mescomposant

Tu peux y créer autant de répertoire que tu veux, le mieux c'est d'avoir un rpertoire spécifique par site, mais attention si tu as 2 fois le même fichier dans des répertoires CustomTagPath différents, coldfusion prend le premier, ça peut parfois réserver des surprises.
Après à la racine de ton répertoire CustomTagPath tu peux y créer des répertoires ou y mettre tes cfc directement dans ce répertoire.
Attention si tu crées un nouveau répertoire dans la racine d'un CustomTagPath , tu devras instancié ton appel au composant sur base de ce répertoire.
Bon un petit exemple pour être plus claire :
Imagine que dans l'exemple ci-dessus tu crées un répertoire "mesclients" et que tu y mets un fichier client.cfc dans lequel se trouve une fonction "Add" , lorsque tu vas vouloir utiliser ce composant tu feras :
<cfinvoque component="mesclients.client" méthode = "Add" .....

Une autre façon d'accéder aux component est d'utiliser <cfscript>
<cfscript>
client = createObject("component", mesclients.client);
client.Add("lenom", "leprenom");
</cfscript>

Et une troisième methode pour être complet dans mon exemple, c'est d'utiliser <cfobject>

<cfobject name="client" component="mesclients.client">

Perso j'utilise principalement <cfscript>

Voilà j'espere avoir éclairé ton esprit

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
0
Rejoignez-nous