簡體   English   中英

Lucee / Coldfusion中的全局功能

[英]Global functions in Lucee/Coldfusion

我正在嘗試在Lucee中創建全局函數。 我已按照此處的指示進行操作,使其“工作正常”。 在Application.cfc內部,我放置了以下代碼:

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

在某些情況下,這似乎可以正常工作,但是如果我們需要在一個包含Application.cfc的子目錄中訪問此函數,而該子目錄中沒有重新定義該函數,則會錯誤指出該函數不存在。

我要達到的最終目標是擁有一個包含多個用戶定義函數的cfc文件,然后使它們在整個應用程序中均可訪問,而無需一遍又一遍地重新定義。

有沒有更好的方法來完成我們想要的? 我問這個問題是因為在我之前在“評論”部分中引用的頁面上有一個引號:

我同意。 將來在其他地方看到它也不會感到驚訝。

我喜歡Railo的方法是完全將其沙箱化。 主機A的標簽和函數庫永遠不會與主機B的庫交叉/沖突,除非它們被放入全局服務器文件夾中。 虛擬文件系統也是如此,幾乎所有其他東西(數據源等)也是如此。

它特別提到Railo有創建UDF的方法,但是我在任何地方都找不到關於它的文檔。 由於我們正在使用Lucee,這是Railo的分支,所以我認為它必須具有Railo用來創建UDF的功能。 希望能讀懂這篇文章的人可以幫助我,並為我指出正確的方向。

Railo / Lucee支持自定義功能。 您可以在站點的/WEB-INF/{railo|lucee}/library/function/中聲明它們。 將該函數保存在一個.cfm文件中,然后將該文件命名為該函數。 創建新功能后,服務器需要重新啟動。 這是Railo的博客文章。

Adobe ColdFusion不支持此AFAIK。 因此,您必須將函數存儲在此處的SERVER范圍內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM