我是 Coldfusion 的新手,想知道是否有人知道在脚本块内访问函数的方法。我找不到从那里调用它的方法。
Adobe 为什么要删除它?还是他们现在只是将其称为其他名称?
抱歉 - 我知道这可能是非常基本的问题,但就像我说的我是新手。
我是 Coldfusion 的新手,想知道是否有人知道在脚本块内访问函数的方法。我找不到从那里调用它的方法。
Adobe 为什么要删除它?还是他们现在只是将其称为其他名称?
抱歉 - 我知道这可能是非常基本的问题,但就像我说的我是新手。
cfoutput 和 cflog 使用了相同的模式,带有writeOutput () 和writeLog () 函数。
写转储()
显然,在 ColdFusion 9 中,它已作为 writeDump() 添加,因此您应该能够从 cfscript 块中使用它。
所以如果你有CF9,那你就没事了。
如果您像我们一样使用不支持这个新引入的 writeDump() 函数的旧旧系统,您可以为它编写一个包装器并将其放在所有文件都可以访问的地方。
这是我写的包装器,用于短期调试可以放在你正在处理的 cfc 文件上(尽管在你提交代码之前删除它 - 否则它只是一团糟),或者你可以把它放在全局的地方所以您可以从共享范围调用它。
这是您可以使用的包装函数的示例:
<cffunction name="dump" access="private" returntype="void" hint="dump wrapper">
<cfargument name="stuffToDump" type="any" required="true" hint="what you want to dump">
<cfargument name="abort" type="any" default="false" hint="abort after dump">
<cfargument name="expand" type="any" default="false" hint="expand output">
<cfdump var="#arguments.stuffToDump#" expand="#arguments.expand#">
<cfif #arguments.abort# EQ 1>
<cfabort>
</cfif>
</cffunction>
解决这个问题可能有更好的方法,但这是我目前使用的。
您可以将它(临时)放在您当前正在处理的 cfc 文件中,但显然不要将它提交到您的代码库,因为您不希望所有文件都具有转储功能。
或者,您可以将其永久放入 cfinclude 文件中,然后将其(再次 - 临时)包含到您正在调试的文件中。
我猜另一种选择是将它放在 Application.cfc 上。该文件有许多标准方法,但您也可以定义自己的附加方法以包含在其中。然后你的 dump() 函数在 APPLICATION 范围内可用。
Application.cfc 文件在这里有一个很好的信息页面。http://www.bennadel.com/blog/726-ColdFusion-Application-cfc-Tutorial-And-Application-cfc-Reference.htm
我什至看到它在服务器范围内使用,但绝不应该在生产代码上这样做。可以调试我想作为最后的手段,只要确保你记得删除它。
就我个人而言,我认为这两个选项可能都远非理想,而且很遗憾 Adobe 花了这么长时间才提供该功能的脚本替代方案。本来可以减轻很多痛苦。
但希望如果您使用的是 CF9,那么所有这些对您来说都无关紧要,您可以使用新的 writedump() 函数,现在他们终于添加了它。
为了更清楚一点并提供一个例子:
<cfscript>
SomeString = 'ABC';
writeDump(SomeString);
</cfscript>
彼得的回答是 100% 正确的。