2009-05-19 13 views
26

W celu debugowania chciałbym zrzucić pewne zmienne na moją stronę. Jak mogę to zrobić z poziomu tagu cfscript?Jak wykonać cfdump wewnątrz znacznika cfscript?

Próbowałem następujących ale to nie działa:

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

Wszelkie wskazówki na temat tego, co można zrobić?

+0

silnie powiązane: http://stackoverflow.com/questions/1917706/cfdump-cfcomponent-cfscript/1917756 – ale

Odpowiedz

39

Nie można tego zrobić bezpośrednio w ten sposób w wersjach przed wersją CF 9. Można jednak użyć interfejsu UDF dump() znalezionego w programie CFLib. Jest tam cała biblioteka UDF, która naśladuje znaczniki CF, które nie mają bezpośrednich odpowiedników CFSCRIPT.

ColdFusion 9 (i więcej) oferuje funkcję writeDump().

3

Byłoby dość łatwo napisać własne. Po prostu definiujesz funkcję w cfml zamiast cfscript. Możesz użyć tego również do cfaborts i cfloops.

Coś w tym stylu (poza moją głową ... nie na miejscu).

<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

użycie writeDump() jak sposób korzystania writeOutput()

zobaczyć writeDump na CF 9 odniesienie

+0

Działa to doskonale dla we wszystkich sytuacjach do tej pory. – JimP

5

nie jest następujący znacznie łatwiejsze i proste?

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

Działa na CF7 i do przodu, może nawet wcześniej.

-2

Do dump używamy Writedump (myvar); zamiast w cfscript i tym samym używamy abort; zamiast do wyjścia wykonanie programu w dowolnej instancji. Używamy writeoutput(); zamiast:

<cfoutput>#myvar#</cfoutput> 

poniżej to kod zrzutu i przerwania w cfscript.

writedump(myvar); for dump 

abort; for stop execution of programm 

writeoutput(myvar); for output within cfscript 
2

Teraz zwykły nazwy znaczników dozwolone w CFScript począwszy ColdFusion 11

<cfscript> 
    cfdump (var=#myVar#); 
</cfscript> 
Powiązane problemy