Как сделать cfdump внутри тега cfscript?

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

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

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

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

7 ответов

Решение

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

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

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

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

см. запись writeDump в CF 9

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

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

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

Было бы довольно легко написать свой собственный тоже. Вы просто определяете функцию в 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>

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

<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
Другие вопросы по тегам