2016-06-22 6 views
1

私は1つのプロジェクトフォルダを持っています。1つのオブジェクトで複数のcfcを開始するにはどうすればよいですか?

/ProjectFolder

  • --- Application.cfcの
  • --- index.cfmに
  • :プロジェクトフォルダ内の1のApplication.cfc、1 index.cfmに及びCFCののフォルダです
  • --- CFC(フォルダ)
    • SomeComponent.cfc
    • OtherComponent.cfc
    • フォルダで
    • ...

、私は10件の* .cfcというファイルがあります。 ColdFusion内の1つのオブジェクトで10 * .cfcファイルをどのように初期化またはマップできますか?

+1

インスタンス化されたオブジェクトを返す以外は何もしないcfcを1つ持つことができますが、なぜそれをしたいのか分かりません。 –

答えて

2

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

いつもようこそエイドリアン – cfprabhu

関連する問題