自定義標記具有屬性範圍。涼。屬性範圍vs屬性結構
我還見過其他一些應用程序(可能還有冷庫?),開發人員將所有內容都放入屬性結構中。
例如login.cfm
<cfparam name="attributes.username" default="some value">
有沒有點這個除了具有指定attributes.foo
這確實提高可讀性,我承認,但爲什麼重用全範圍的名字嗎?這是個人偏好還是我缺少屬性範圍的深刻內容?
謝謝。
自定義標記具有屬性範圍。涼。屬性範圍vs屬性結構
我還見過其他一些應用程序(可能還有冷庫?),開發人員將所有內容都放入屬性結構中。
例如login.cfm
<cfparam name="attributes.username" default="some value">
有沒有點這個除了具有指定attributes.foo
這確實提高可讀性,我承認,但爲什麼重用全範圍的名字嗎?這是個人偏好還是我缺少屬性範圍的深刻內容?
謝謝。
這沒什麼深刻的。很多框架(和個人開發人員)喜歡將表單和url範圍合併成一個「事件」對象或其他東西(例如你的「屬性」範例),但它並不會真正給你帶來太多的收益。
也就是說,在現有範圍之後命名新對象被誤導了,我建議不要這樣做。當你想要屬性範圍內的東西而不是屬性對象時會發生什麼?
你總是可以通過variables.attributes.foo來引用對象的顯式性,但這是一種痛苦,有點難看。當然,沒有任何東西阻止你訪問屬性範圍(範圍優先權將檢查變量屬性之前的屬性),但是之後必須閱讀代碼的人更加困惑。它本質上是一個問題,而不是解決問題。
在熔絲盒中,想法是可以將單個文件用作框架的一部分,也可以將其用作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的細節
詹姆斯,我沒有看到你指的是什麼呢?該鏈接中沒有提到cfmodule? –
一般來說,但在這種情況下,將相關文本直接引用到您的答案中(使用'>'來標記報價)是有用的,儘管當然還包括歸屬地址。 –
我下面的回答有更多的細節 –