Trước khi sử dụng ColdBox Framework Tôi không thấy bất kỳ bài đăng nào về việc sử dụng Momentos để nắm bắt thuộc tính tại thời điểm đó; tuy nhiên, bây giờ tất cả các hạt của tôi có phương thức getMomento() và setMomento(). Tôi sẽ khuyến khích điều này như là một thực hành tốt nhất cho bất cứ ai cần truyền thông tin từ một bean vào một đối tượng DAO khác.
Trong các thử nghiệm của tôi, nhận được một khoảnh khắc là nhanh hơn nhiều so với đậu và nhận được các thuộc tính. Dưới đây là một ví dụ:
<cfcomponent name="userBean" output="true" hint="The account bean holds getter/setter information for a user's account.">
<cfproperty name="idUser" required="true" type="string" rules="noZeroLengthString,validEmail" invalidMessage="failed_data_validation_email" hint="Key matching the 'accounts' table.">
<cfproperty name="loginEmail" required="true" type="string" rules="noZeroLengthString,validEmail" invalidMessage="failed_data_validation_email" hint="E-mail address.">
<cfproperty name="password" required="true" type="string" rules="noZeroLengthString,validPassword" invalidMessage="failed_data_validation_password" hint="Password stored in a SHA-512 hash.">
<cffunction name="init" output="false" returntype="userBean" hint="Initalizes the userBean with default values.">
<cfset variables.instance = structNew()>
<cfset variables.instance.IDUser = 0>
<cfset variables.instance.loginEmail = "">
<cfset variables.instance.password = "">
<cfreturn this>
</cffunction>
<!--- SET LOGIN --->
<cffunction name="setLoginEmail" access="public" returntype="void" output="false">
<cfargument name="email" type="string" required="true" />
<cfset variables.instance.loginEmail = trim(arguments.email) />
</cffunction>
<cffunction name="getLoginEmail" access="public" returntype="string" output="false">
<cfreturn variables.instance.loginEmail />
</cffunction>
<!--- ID --->
<cffunction name="setIDUser" access="public" returntype="void" output="false">
<cfargument name="id" type="numeric" required="true" />
<cfset variables.instance.IDUser = arguments.id />
</cffunction>
<cffunction name="getIDUser" access="public" returntype="numeric" output="false">
<cfreturn variables.instance.IDUser />
</cffunction>
<!--- PASSWORD --->
<cffunction name="setPassword" access="public" returntype="void" output="false">
<cfargument name="password" type="string" required="true" />
<cfset var pw = arguments.password>
<cfif len(pw) EQ 0>
<cfset variables.instance.password = "">
<cfelse>
<!---><cfset variables.instance.password = hash(arguments.password, "SHA-512") />--->
<cfset variables.instance.password = arguments.password>
</cfif>
</cffunction>
<cffunction name="getPassword" access="public" returntype="string" output="false">
<cfreturn variables.instance.password />
</cffunction>
<!--- MOMENTO --->
<cffunction name="setMomento" access="public" returntype="void" output="false">
<cfargument name="momento" type="struct" required="true" />
<cfset variables.instance = arguments.momento>
</cffunction>
<cffunction name="getMomento" access="public" returntype="struct" output="false">
<cfreturn variables.instance />
</cffunction>
Chúc mừng,
Aaron Greenlee My Site
Nguồn
2009-04-08 21:08:21
1) Luôn đảm bảo kết quả của bạn là tái sản xuất trước khi bạn thông báo cho báo chí ... – Shog9
Điều này có vẻ giống như một loại wiki cộng đồng, có lẽ? Dù sao, tôi muốn thỉnh cầu cho một tên được cải thiện, vì tôi phản đối việc sử dụng "tốt nhất" khi từ chính xác hơn thường "được đề xuất" hoặc "thời trang", vì "tốt nhất" là hầu như luôn luôn là vấn đề bối cảnh. –
Peter, xong rồi! –