Я пытаюсь создать глобальные функции в 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. Надеюсь, что кто-то, кто читает это, может помочь мне и указать мне правильное направление.