私は仕事ができる別の方法を考えました。
セットアップこのようなOnMissingMethod何か:
<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>
は、その後の接頭辞(この例では「隠し」)との定期的なメソッドのそれぞれに名前を付け、プライベートとしてマーク。だから私の最初の例はなる:
<cffunction name="HiddenisUsernameAvailable" access="private">
<cfset logAccess(request.userid,Arguments.calledMethodName)>
......
</cffunction>
今、すべてのコールは、実際のメソッドに渡される引数にメソッド名を追加しますonMissingMethod、によってインターセプトされます。
私が見ている欠点は、イントロスペクションが正しく機能しなくなり、名前付き引数を使用してすべての関数を呼び出す必要があることです。名前付き引数を使用しない場合、argsはmissingMethodNameArguments構造体の順序をランダムに変更します。
coldspringでの通話はいいですが、これは複雑ではないと思います。 – ethyreal