Lucee / Coldfusion的全球职能

时间:2016-06-15 14:34:01

标签: coldfusion railo lucee

我正在尝试在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的功能。希望看到这个的人可以帮助我,并指出我正确的方向。

1 个答案:

答案 0 :(得分:3)

Railo / Lucee支持自定义功能。您可以在网站的/WEB-INF/{railo|lucee}/library/function/中声明它们。将该函数保存在.cfm文件中,并将该文件命名为与该函数相同的文件。创建新功能后,服务器需要重新启动。 Here is Railo's blog post about it.

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