0
종속성 삽입을 사용하면 개체 외부에있는 개체와 범위를 직접 참조하지 않아도됩니다. 대신 주입 된 종속성을 참조하십시오.CFML에서 전역 함수 라이브러리를 참조하는 방법은 무엇입니까?
전역 함수 라이브러리의 경우 가장 좋은 방법을 알고 싶습니다. 현재 내 기능을 서버 범위에 저장합니다. 나는 내 프로젝트가 다른 개발자들이 이해할 수있는 오픈 소스가되기를 원한다. 응용 프로그램에서 단위 테스트를 작성하고 더 느슨하게 결합하기를 원합니다.
전역 함수를 사용하는 모든 개체에 서버 범위를 삽입해야합니까?
또는 규칙에 예외를 만들고 이러한 함수를 참조 할 때 "server.functions.myFunction()"범위를 구성 요소에 직접 넣어야합니까?
방법 1 :
<cfcomponent>
<cffunction name="init">
<cfscript>
server.functions.myFunction();
</cfscript>
</cffunction>
</cfcomponent>
방법 2 :이 내 대답을 공식화 주위 없었어
<cfcomponent>
<cffunction name="init">
<cfargument name="serverScope" type="struct" required="yes">
<cfscript>
variables.serverScope=arguments.serverScope;
variables.serverScope.functions.myFunction();
</cfscript>
</cffunction>
</cfcomponent>
이 글로벌 라이브러리에는 몇 개의 함수가 있으며, 그 중 몇 퍼센트를 주입 할 각 구성 요소에서 어떤 비율로 사용할 것입니까? 저는 "전역 함수 라이브러리"와 같은 것들을 경계하며, 목적에 기초한 컴포넌트로 더 분해하고, 필요로하는 컴포넌트에 이들을 삽입하려고합니다. lib에있는 함수를 보지 않고도 말하기는 어렵지만, 여기에서 살펴볼 몇 가지 재구성이있을 것 같은데? –
응용 프로그램 범위에서 서버 범위를 사용하는 이유는 무엇입니까? – NotJustClarkKent
@NotJustClarkKent 동일한 기능을 사용하는 100 개 이상의 사이트가 있습니다. 새 소스 코드를 업로드 할 때 서버 범위에 대한 업데이트를 수동으로 동기화합니다. –