デバッグするために、特定の変数を自分のWebページにダンプしたいと思います。cfscriptタグ内からそれを行うにはどうすればよいですか?
次のことを試しましたが、機能しません。
<cfscript>
...
<cfif cgi.REMOTE_ADDR eq "IP">
<cfdump var="#var1#"><br/>
</cfif>
...
</cfscript>
何ができるかについての手がかりはありますか?
デバッグするために、特定の変数を自分のWebページにダンプしたいと思います。cfscriptタグ内からそれを行うにはどうすればよいですか?
次のことを試しましたが、機能しません。
<cfscript>
...
<cfif cgi.REMOTE_ADDR eq "IP">
<cfdump var="#var1#"><br/>
</cfif>
...
</cfscript>
何ができるかについての手がかりはありますか?
CF 9より前のバージョンでは、このように直接行うことはできません。ただし、CFLibにあるdump() UDFを使用することはできます。直接CFSCRIPTに相当するものがないCFタグを模倣するUDFのライブラリ全体があります。
ColdFusion 9(およびそれ以降)がこのwriteDump()
機能を提供します。
WriteDump()関数のAdobeドキュメントリンク
writeOutput()の使用方法と同じようにwriteDump()を使用します
CF9リファレンスのwriteDumpを参照してください
次のことははるかに簡単で簡単ではありませんか?
oAdmin = createObject("component", "cfide.adminapi.base");
oAdmin.dump(myVar);
CF7以降、おそらくそれ以前でも機能します。
自分で書くのもかなり簡単でしょう。cfscriptではなくcfmlで関数を定義するだけです。これを使用して、cfabortsとcfloopsを実行することもできます。
このようなもの(頭のてっぺんから...実行されていません)。
<CFFUNCTION NAME="MyDump">
<CFARGUMENT NAME="OBJ" Required="TRUE">
<CFDUMP VAR="#Obj#">
</CFFUNCTION>
<CFSCRIPT>
if(cgi.REMOTE_ADDR eq "IP"){
MyDump(Var1);
}
</CFSCRIPT>
現在、ColdFusion11以降のcfscript内でプレーンタグ名が許可されています
<cfscript>
cfdump (var=#myVar#);
</cfscript>
<cffunction name="setAbort" access="private" returntype="void" output="false">
<cfdump var="#arguments#"/><cfabort>
</cffunction>
ダンプには、Writedump(myvar);を使用します。cfscriptの代わりに、同じようにabortを使用します。任意のインスタンスでプログラムの実行を終了する代わりに、writeoutput();を使用します。それ以外の
<cfoutput>#myvar#</cfoutput>
以下は、cfscriptでのダンプとアボートのコードです。
writedump(myvar); for dump
abort; for stop execution of programm
writeoutput(myvar); for output within cfscript