我正在尝试在Lucee中创建全局功能。我遵循了here的指示并让它“有点”工作。在Application.cfc里面我放了以下代码:
public void function onRequest() {
URL.IsInternalUser = function() { return (SESSION.user.ID ?: 0); };
}
这似乎在某些情况下工作正常,但如果我们需要在包含没有重新定义函数的Application.cfc的子目录中访问此函数,则会错误地说该函数不存在。< / p>
我想要实现的最终目标是拥有一个cfc
文件,其中包含多个用户定义的函数,然后可以在整个应用程序中访问它们,而无需一遍又一遍地重新定义。
有没有更好的方法来实现我们想要的?我问这个是因为在我之前在评论部分引用的页面上有一个引用:
我同意。在将来的某个地方看到它会让我感到惊讶。
我喜欢 Railo的方法,它完全是沙箱。 主机A的标签&amp;函数库永远不会与主机B交叉/冲突 库除非将它们放入全局服务器文件夹中。就是这样 同样的方式对于虚拟文件系统也几乎一切 else(数据源等)。
它特别提到Railo有办法创建UDF,但我无法在任何地方找到任何文档。由于我们使用的是Lucee,它是Railo的一个分支,我认为它必须具有Railo用于创建UDF的功能。希望看到这个的人可以帮助我,并指出我正确的方向。
答案 0 :(得分:3)
Railo / Lucee支持自定义功能。您可以在网站的/WEB-INF/{railo|lucee}/library/function/
中声明它们。将该函数保存在.cfm
文件中,并将该文件命名为与该函数相同的文件。创建新功能后,服务器需要重新启动。 Here is Railo's blog post about it.
Adobe ColdFusion不支持此AFAIK。因此,您必须将您的函数存储在SERVER
范围内。