Je pensais que d'une autre manière qui pourrait fonctionner.
Configuration d'un quelque chose OnMissingMethod comme ceci:
<cffunction name="onMissingMethod">
<cfargument name="missingMethodName" type="string">
<cfargument name="missingMethodNameArguments" type="struct">
<cfset var tmpReturn = "">
<cfset var functionToCallName = "Hidden" & Arguments.missingMethodName>
<cfset arguments.missingMethodArguments.calledMethodName = Arguments.missingMethodName>
<cfinvoke method="#functionToCallName#" argumentcollection="#Arguments.missingMethodArguments#" returnvariable="tmpReturn" />
<cfreturn tmpReturn>
</cffunction>
nom, puis chacune des méthodes régulières avec un préfixe (dans cet exemple « Caché ») et les marquer comme privée. Donc, mon premier exemple deviendrait:
<cffunction name="HiddenisUsernameAvailable" access="private">
<cfset logAccess(request.userid,Arguments.calledMethodName)>
......
</cffunction>
Maintenant, tous les appels seront interceptés par onMissingMethod, qui ajoutera le nom de la méthode aux arguments qui sont transmis à la méthode réelle. Les inconvénients que je vois à ceci sont que l'introspection ne fonctionne plus correctement, et vous devez utiliser des arguments nommés pour appeler toutes vos fonctions. Si vous n'utilisez pas d'arguments nommés, les arguments changeront aléatoirement l'ordre dans la structure missingMethodNameArguments.
bon appel sur le coldspring, mais on pourrait penser que ce ne serait pas si compliqué. – ethyreal