2016-06-15 7 views
0

Lucee에서 전역 함수를 만들려고합니다. 나는 방향 here을 따라 갔고 "일종의"일을했습니다. Application.cfc의 내부에서 다음 코드 위치 :Lucee/Coldfusion의 전역 함수

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

이 어떤 경우에 잘 작동하는 것 같다을하지만, 우리가 Application.cfc를 포함하는 하위 디렉토리에이 기능에 액세스해야하는 경우 기능을 다시이없는 그 -define은 함수가 존재하지 않는다고 에러 출력합니다.

내가 얻으려고하는 궁극적 인 목표는 여러 사용자 정의 함수를 포함하는 파일을 cfc으로 만든 다음 여러 번 다시 정의하지 않고 전체 응용 프로그램에서 액세스 할 수있게하는 것입니다.

우리가 원하는 것을 성취 할 수있는 더 좋은 방법이 있습니까? 페이지의 앞부분에 주석 섹션에 인용 된 인용문이 있기 때문에 질문드립니다.

동의합니다. 앞으로 다른 곳에서 그것을 보게되어서 놀라지 않을 것입니다.

내가 좋아하는 것 Railo의 방법은 완전히 샌드 박입니다. 호스트 A의 태그 & 함수 라이브러리는 호스트 B의 라이브러리와 교차/충돌하지 않으며 전역 서버 폴더에 저장됩니다. 가상 파일 시스템에 대해서도 마찬가지로 동일한 방법으로 이고 다른 모든 것은 (데이터 소스 등)입니다.

특별히 Railo에 UDF를 만드는 방법이 언급되어 있지만 여기서는 문서를 찾을 수 없습니다. 우리가 Railo의 포크 인 Lucee를 사용하고 있기 때문에 Railo가 UDF를 만드는 데 필요한 요소가 있어야한다고 생각합니다. 이것을 읽는 누군가가 나를 도와주고 올바른 방향으로 나를 가리킬 수 있기를 바랍니다.

답변

3

Railo/Lucee는 사용자 정의 기능을 지원합니다. 당신은 사이트의 /WEB-INF/{railo|lucee}/library/function/에서 그들을 선언 할 수 있습니다. 함수를 .cfm 파일에 저장하고 파일의 이름을 함수의 이름과 동일하게 지정하십시오. 새 기능을 만든 후에 서버를 다시 시작해야합니다. Here is Railo's blog post about it.

Adobe ColdFusion은이 AFAIK를 지원하지 않습니다. 따라서 여기에 SERVER 범위에 함수를 저장해야합니다.

+0

서버가 다시 시작될 때마다 WEB-INF 디렉토리를 덮어 쓰지 않습니까? – Yamaha32088

+0

아니요, WEB-INF는 Railo/Lucee 서비스가 시작될 때 한 번만 생성됩니다. 그러면 디렉토리가 유지되고 설정을 저장합니다. – Alex

+0

굉장한, 나는 이것에게 시험 고마워 할 것이다! – Yamaha32088