2009-05-19 12 views
26

Um zu debuggen möchte ich bestimmte Variablen auf meiner Webseite ablegen. Wie kann ich das innerhalb eines cfscript-Tags tun?Wie führe ich einen cfdump in einem cfscript-Tag aus?

ich folgendes versucht, aber es funktioniert nicht:

<cfscript> 
    ... 
    <cfif cgi.REMOTE_ADDR eq "IP"> 
    <cfdump var="#var1#"><br/> 
    </cfif> 
    ... 
</cfscript> 

Irgendwelche Hinweise auf das, was getan werden kann?

+0

Stark im Zusammenhang: http://stackoverflow.com/questions/1917706/cfdump-cfcomponent-cfscript/1917756 – ale

Antwort

39

In Versionen vor CF 9 können Sie das nicht direkt machen. Sie können jedoch die bei CFLib gefundene UDF dump() verwenden. Es gibt eine ganze Bibliothek von UDFs, die CF-Tags nachahmen, die keine direkten CFSCRIPT-Entsprechungen haben.

ColdFusion 9 (und höher) bietet die writeDump()-Funktion.

3

Es wäre ziemlich einfach, auch Ihre eigenen zu schreiben. Sie definieren nur eine Funktion in cfml und nicht in cfscript. Sie können dies auch für cfaborts und cfloops verwenden.

So etwas (Von der Spitze meines Kopfes ... nicht ausgeführt).

<CFFUNCTION NAME="MyDump"> 
    <CFARGUMENT NAME="OBJ" Required="TRUE"> 
    <CFDUMP VAR="#Obj#"> 
</CFFUNCTION> 
<CFSCRIPT> 
    if(cgi.REMOTE_ADDR eq "IP"){ 
    MyDump(Var1); 
    } 
</CFSCRIPT> 
2
<cffunction name="setAbort" access="private" returntype="void" output="false"> 
<cfdump var="#arguments#"/><cfabort> 
</cffunction> 
29

Verwendung writeDump() wie, wie verwenden Sie Writeoutput()

siehe writeDump auf CF 9 Referenz

+0

Das funktioniert perfekt für Ich in allen Situationen bisher. – JimP

5

Ist nicht die folgende viel einfacher und unkompliziert?

oAdmin = createObject("component", "cfide.adminapi.base"); 
oAdmin.dump(myVar); 

Es funktioniert auf CF7 und weiter, vielleicht noch früher.

-2

Für Dump verwenden wir Writedump (myvar); statt in cfscript und gleich verwenden wir abort; anstelle von exit die Ausführung des Programms in jedem Fall.wir verwenden writeoutput(); statt

<cfoutput>#myvar#</cfoutput> 

unten ist der Code für Dump und bricht in cfscript.

writedump(myvar); for dump 

abort; for stop execution of programm 

writeoutput(myvar); for output within cfscript 
2

Jetzt Ebene Tag-Namen innerhalb cfscript erlaubt Coldfusion beginnend 11

<cfscript> 
    cfdump (var=#myVar#); 
</cfscript>