2

カスタムタグには属性スコープがあります。涼しい。

開発者がすべてを属性構造に入れる他のアプリ(そしておそらくColdBox?)もいくつか見ました。たとえばlogin.cfm

<cfparam name="attributes.username" default="some value">

読みやすさを向上させるものを指定する必要がある以外に、これにはポイントがありますattributes.fooが、私は認めますが、なぜフルスコープの名前を再利用するのですか?

これは個人的な好みですか、それとも属性スコープで深遠な何かが欠けていますか?

4

2 に答える 2

5

それは深遠なことではありません。多くのフレームワーク(および個々の開発者)は、フォームスコープとURLスコープを単一の「イベント」オブジェクトまたは何か(「属性」の例)に結合することを好みますが、実際にはそれほど多くは購入しません。

とはいえ、既存のスコープにちなんで新しいオブジェクトに名前を付けるのは誤った方向に進んでいるので、反対することをお勧めします。属性オブジェクトではなく、属性スコープ外のものが必要な場合はどうなりますか?

明示性のためにvariables.attributes.fooを介してオブジェクトをいつでも参照できますが、それは面倒で少し醜いです。そしてもちろん、属性スコープへのアクセスを妨げるものは何もありません(スコープの優先順位はvariables.attributesの前に属性をチェックします)が、その後、コードを読まなければならない人はもっと混乱します。問題を解決するのではなく、本質的に問題を引き起こします。

于 2012-11-20T15:56:50.187 に答える
0

Fuseboxでは、個々のファイルをフレームワークの一部として使用することも、cfmoduleの一部として使用することもできるという考えでした。corefiles/application.cfcの内部は次のとおりです。

...
<cfparam name="variables.attributes" default="#structNew()#" />
<cfif isDefined("URL")>
    <cfset structAppend(attributes,URL,true) />
</cfif>
<cfif isDefined("form")>
    <cfset structAppend(attributes,form,true) />
</cfif>
...

詳細については、 GitHubを参照してください

于 2012-11-28T19:43:43.203 に答える