2017-10-20 17 views
0

Je travaille sur un projet de génération de code que je voudrais créer dynamiquement des structures avec des fonctionnalités. J'ai trouvé que vous pouvez définir des fonctions pour une structure, mais je veux générer dynamiquement le nom, la valeur de retour et toutes les instructions à l'intérieur de la fonction. J'ai pensé qu'une chaîne me permettrait de le faire mais je n'arrive pas à comprendre comment convertir une chaîne en une fonction. Est-ce possible, sinon, est-il possible de générer dynamiquement un CFC?coldfusion chaîne de fonction ou dynamique cfc

<cfset j = structnew()> 
<cfset j.test = evaluate('function(){ return "test"; }')> 
<cfdump var="#j#"> 
<cfabort> 
+0

Je n'aime pas cette approche. Je ne sais pas pourquoi les fonctions entrent et sortent de l'existence. Je pense normalement aux variables qui changent, mais pas aux fonctions. –

+1

@JamesAMohler ce n'est pas que la fonction change souvent, mais en utilisant une structure commune pour définir la fonction. IE définissant mes fonctions info à l'intérieur d'un objet json, et pouvant ensuite générer cette même fonction en javascript, coldfusion, C#, ou tout autre langage que je veux (tant que j'ai écrit un générateur pour cette langue). – Silas

Répondre

2

Vous pouvez créer dynamiquement un fichier .cfc de la même manière que vous pouvez créer dynamiquement un fichier .cfm.

Étape 1 - créez le contenu du fichier en tant que variable de chaîne.

Étape 2 - utilisez cffile pour écrire le fichier.

Étape 3 - amenez le fichier dans votre page. Avec les fichiers .cfm, il s'agirait d'une balise <cfinclude>. Avec les fichiers .cfc, peut-être un createObject (fonction)

Étape 4 - utilisez le code dans le fichier.

Étape 5 - supprimer le fichier.