0

我正在尝试在 Lucee 中创建全局函数。我已经按照这里的指示并让它“有点”工作。在 Application.cfc 中,我放置了以下代码:

public void function onRequest() {
    URL.IsInternalUser = function() { return (SESSION.user.ID ?: 0); };
}

这在某些情况下似乎可以正常工作,但如果我们需要在包含未重新定义函数的 Application.cfc 的子目录中访问此函数,则会错误提示该函数不存在。

我试图实现的最终目标是拥有一个cfc包含多个用户定义函数的文件,然后让它们在整个应用程序中都可以访问,而无需一遍又一遍地重新定义。

有没有更好的方法来完成我们想要的?我问这个是因为在我之前在评论部分引用的页面上有一句话:

我同意。将来在其他地方看到它不会让我感到惊讶。

我喜欢Railo方法的地方在于它是完全沙盒化的。主机 A 的标签和函数库永远不会与主机 B 的库交叉/冲突,除非它们被放入全局服务器文件夹。虚拟文件系统和其他几乎所有东西(数据源等)也是如此。

它特别提到 Railo 有一种创建 UDF 的方法,但我在任何地方都找不到任何文档。由于我们使用的是 Railo 的一个分支 Lucee,我认为它必须具有 Railo 用于创建 UDF 的功能。希望读到这篇文章的人可以帮助我并为我指明正确的方向。

4

1 回答 1

3

Railo/Lucee 支持自定义函数。/WEB-INF/{railo|lucee}/library/function/您可以在网站中声明它们。将函数保存在.cfm文件中,并将文件命名为与函数相同的名称。创建新功能后,服务器需要重新启动。这是Railo关于它的博客文章。

Adobe ColdFusion 不支持此 AFAIK。因此,您必须将您的函数存储在SERVER此处的范围内。

于 2016-06-15T15:02:06.057 回答