2016-06-22 2 views
1

하나의 프로젝트 폴더가 있습니다. 프로젝트 폴더 안에 하나 Application.cfc, 하나 index.cfm 및 CFC의의 폴더입니다 :하나의 객체로 여러 cfc를 초기화하는 방법은 무엇입니까?

/ProjectFolder

  • --- Application.cfc
  • --- index.cfm
  • --- CFC (폴더)
    • SomeComponent.cfc
    • OtherComponent.cfc
    • 합니다 ... cfc 폴더에서

, 나는 10 개 * .cfc 파일이 있습니다. ColdFusion에서 하나의 객체가있는 10 * .cfc 파일을 어떻게 초기화하거나 매핑 할 수 있습니까?

+1

인스턴스화 된 객체를 반환하지만 아무것도 수행하지 않는 cfc를 하나 가질 수는 있습니다. 그러나 왜 그렇게하고 싶지는 확실하지 않습니다. –

답변

2

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 범위에서 생성되고 요청 중 어느 시점에 채워지며 요청이 완료되면 제거됩니다.

+0

가 올바르지 않다고 생각합니다. 와 같은 함수를 호출 할 수 있습니다. 내가 맞습니까? – cfprabhu

+0

당신이 정확합니다! 업데이트되었습니다. 감사합니다. –

+0

항상 환영 Adrian – cfprabhu

관련 문제