하나의 프로젝트 폴더가 있습니다. 프로젝트 폴더 안에 하나 Application.cfc, 하나 index.cfm 및 CFC의의 폴더입니다 :하나의 객체로 여러 cfc를 초기화하는 방법은 무엇입니까?
/ProjectFolder
- --- Application.cfc
- --- index.cfm 은
- --- CFC (폴더)
- SomeComponent.cfc
- OtherComponent.cfc
- 합니다 ...
cfc
폴더에서
하나의 프로젝트 폴더가 있습니다. 프로젝트 폴더 안에 하나 Application.cfc, 하나 index.cfm 및 CFC의의 폴더입니다 :하나의 객체로 여러 cfc를 초기화하는 방법은 무엇입니까?
/ProjectFolder
cfc
폴더에서 CFC가 한 번만 생성 될 수있는 경우 즉, 저장 프로 시저를 호출하거나 알고리즘 또는 기타 비즈니스 논리를 포함하지 않는 경우 CFC를 응용 프로그램이 처음 적용될 때 application
범위의 변수로 간단히 만들 수 있습니다 시작됩니다.
이 예에서는 Application.cfc
이 루트 폴더에 있으며 CFC 파일은 /cfc/
폴더에 있습니다.
<cffunction name="onApplicationStart" returnType="boolean" output="false">
<cfset application.stObject = {
foo = new cfc.Foo()
, bar = new cfc.Bar()
, etc = new cfc.Etc()
} />
<cfreturn true />
</cffunction>
그런 다음, 어디서나 코드에서, 당신은 특정 CFC를 참조하고과 같이 그 안에 함수를 호출 할 수
<cfset qMyData = application.stObject.foo.getMyData() />
는 데이터와 CFC를 채우고 그것을 수행해야하는 경우 주위에 사용자의 세션이 있지만 onSessionStart()
을 사용하여 해당 객체를 생성하려는 경우 Application.cfc
입니다. 또한 사용하지 않는 빈 버전을 가지고 다니는 대신 세션을 채우고 세션에 배치해야 할 시점에 만들 수 있습니다.
마지막으로 페이지 요청 기간 동안 필요에 따라 특정 CFC를 만들어야 할 수도 있습니다. 그것들은 variables
범위에서 생성되고 요청 중 어느 시점에 채워지며 요청이 완료되면 제거됩니다.
인스턴스화 된 객체를 반환하지만 아무것도 수행하지 않는 cfc를 하나 가질 수는 있습니다. 그러나 왜 그렇게하고 싶지는 확실하지 않습니다. –