Как сделать cfdump внутри тега cfscript? - PullRequest
27 голосов
/ 19 мая 2009

Для отладки я хотел бы вывести определенные переменные на мою веб-страницу. Как я могу сделать это из тега cfscript?

Я попробовал следующее, но оно не работает:

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

Любые подсказки о том, что можно сделать?

Ответы [ 7 ]

42 голосов
/ 19 мая 2009

Вы не можете сделать это напрямую в версиях до CF 9. Однако вы можете использовать dump () UDF, найденный на CFLib. Там есть целая библиотека UDF, которые имитируют тэги CF, которые не имеют прямых эквивалентов CFSCRIPT.

ColdFusion 9 (и выше) предлагает функцию writeDump().

Ссылка на документацию Adobe для WriteDump () функция

31 голосов
/ 17 января 2011

используйте writeDump (), например, как вы используете writeOutput ()

см. writeDump на ссылку CF 9

5 голосов
/ 18 февраля 2012

Разве следующее не намного проще и понятнее?

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

Работает на CF7 и вперед, возможно, даже раньше.

3 голосов
/ 17 октября 2015

Теперь разрешены простые имена тегов в cfscript, начиная с ColdFusion 11

<cfscript>
    cfdump (var=#myVar#);
</cfscript>
3 голосов
/ 23 мая 2009

Было бы довольно легко написать свой собственный. Вы просто определяете функцию в cfml, а не в cfscript. Вы можете использовать это для выполнения cfaborts и cfloops.

Как-то так (С моей макушки ... не выполнено).

<CFFUNCTION NAME="MyDump">
    <CFARGUMENT NAME="OBJ" Required="TRUE">
    <CFDUMP VAR="#Obj#">
</CFFUNCTION>
<CFSCRIPT>
  if(cgi.REMOTE_ADDR eq "IP"){
    MyDump(Var1);
  }
</CFSCRIPT>
2 голосов
/ 26 мая 2009
<cffunction name="setAbort" access="private" returntype="void" output="false">
 <cfdump var="#arguments#"/><cfabort>
</cffunction>
0 голосов
/ 10 января 2014

Для дампа мы используем 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
...