Como fazer uma cfdump dentro de uma tag cfscript?
-
22-08-2019 - |
Pergunta
Para depurar gostaria de despejar algumas variáveis ??sobre a minha página web. Como posso fazer isso de dentro de um tag cfscript?
Eu tentei o seguinte, mas ele não está funcionando:
<cfscript>
...
<cfif cgi.REMOTE_ADDR eq "IP">
<cfdump var="#var1#"><br/>
</cfif>
...
</cfscript>
Qualquer pistas sobre o que pode ser feito?
Solução
Você não pode fazê-lo diretamente como que em versões anteriores CF 9. Você pode, entretanto, usar o href="http://cflib.org/udf/Dump" rel="nofollow noreferrer"> despejo UDF encontrada em CFLib. Há toda uma biblioteca de UDFs lá que as tags CF imitam que não têm equivalentes cfscript diretos.
ColdFusion 9 (e acima) oferece a função writeDump()
.
Adobe Documentação Linkfor WriteDump () função
Outras dicas
uso writeDump () como a forma como você usa writeOutput ()
writeDump em 9 CF de referência
Não é o seguinte muito mais fácil e simples?
oAdmin = createObject("component", "cfide.adminapi.base");
oAdmin.dump(myVar);
Ele funciona em CF7 e para a frente, talvez até antes.
Seria bastante fácil de escrever o seu próprio também. Você acabou de definir uma função em CFML em vez de cfscript. Você pode usar isso para fazer cfaborts e cfloops bem.
Algo assim (Em cima da minha cabeça ... não executado).
<CFFUNCTION NAME="MyDump">
<CFARGUMENT NAME="OBJ" Required="TRUE">
<CFDUMP VAR="#Obj#">
</CFFUNCTION>
<CFSCRIPT>
if(cgi.REMOTE_ADDR eq "IP"){
MyDump(Var1);
}
</CFSCRIPT>
nomes de tags Agora planície permitidos dentro cfscript ColdFusion começando 11
<cfscript>
cfdump (var=#myVar#);
</cfscript>
<cffunction name="setAbort" access="private" returntype="void" output="false">
<cfdump var="#arguments#"/><cfabort>
</cffunction>
Para despejo usamos Writedump (myvar); em vez de em cfscript e mesmo uso que abortar; em vez de para a saída da execução de programa a qualquer writeoutput uso instance.we (); em vez de
<cfoutput>#myvar#</cfoutput>
abaixo é o código para despejo e abort em cfscript.
writedump(myvar); for dump
abort; for stop execution of programm
writeoutput(myvar); for output within cfscript