Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

см. writeDump по ссылке CF 9

Ответ 3

Не следующее ли намного проще и проще?

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

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

Ответ 4

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

Ответ 5

<cffunction name="setAbort" access="private" returntype="void" output="false">
 <cfdump var="#arguments#"/><cfabort>
</cffunction>

Ответ 6

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

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

Ответ 7

Для дампа мы используем Writedump (myvar); а не в cfscript, и мы используем прерывание; а не для выхода из выполнения программы в любом экземпляре. Мы используем writeoutput(); вместо

 <cfoutput>#myvar#</cfoutput>

ниже приведен код для дампа и прерывания в cfscript.

writedump(myvar); for dump

abort; for stop execution of programm 

writeoutput(myvar); for output within cfscript