以前にインクルードした (cfinclude) .cfm ファイルの関数を呼び出すと、この時点で発生したすべての coldfusion インポート (cfimport) が忘れられていることに気付きました。何もインポートしていないようです。この非常に奇妙な動作を見つけたので分離しましたが、coldfusion 10 でも結果は変わりませんでした。
私のセットアップ:
/例
- 関数.cfm
- 索引.cfm
- /コンポーネント
- MyCFC.cfc
関数.cfm:
<cfscript>
function test(){
return "test";
}
</cfscript>
コンポーネント/MyCFC.cfc:
component output="false"{}
インデックス.cfm:
<cfscript>
include "functions.cfm";
import components.MyCFC;
foo = test();
bar = new MyCFC();
</cfscript>
このコードは、「ColdFusion コンポーネントまたはインターフェース MyCFC が見つかりませんでした」という coldfusion エラーをスローします。をfoo = test();
削除または の後に配置bar = new MyCFC();
すると、コードは問題なく実行されます。
インポートがインクルードの前または後に配置されているかどうかは問題ではありません。含まれている関数が呼び出されるたびに、インポートは忘れられます。
これはバグですか、それともこのように動作するはずですか?
コールドフュージョン 9,0,0,251028 およびコールドフュージョン 10,282462 でテスト済み