多くの基本ページを顧客の個々のニーズに合わせてカスタマイズできるようにするため、コード ベースには次の例がかなり含まれています。
<cfif fileExists("/custom/someFile.cfm")>
<cfinclude template="/custom/someFile.cfm" />
<cfelse>
<cfinclude template="someFile.cfm" />
</cfif>
カスタム CF タグを作成してこれを単純なボイラープレートにしたかったの<cf_custominclude template="someFile.cfm" />
ですが、カスタム タグは事実上ブラックボックスであるため、タグの開始前に存在するローカル変数をプルしていないという事実に遭遇しました。タグがファイルをインポートした結果として作成された変数を参照しないでください。
例えば
<!--- This is able to use someVar --->
<!--- Pulls in some variable named "steve" --->
<cfinclude template="someFile.cfm" />
<cfdump var="#steve#" /> <!--- This is valid, however... --->
<!--- someVar is undefined for this --->
<!--- Pulls in steve2 --->
<cf_custominclude template="someFile.cfm" />
<cfdump var="#steve2#" /> <!--- This isn't valid as steve2 is undefined. --->
これを回避する手段はありますか、それとも他の言語機能を利用して目標を達成する必要がありますか?