收集ColdFusion CFC最佳/推荐做法?

时间:2009-03-06 18:54:14

标签: coldfusion cfc

我一直在构建要分享的CFC最佳做法列表。

有很多文章,但我认为在一个地方通过经验学到任何技巧和提示可能会很巧妙。

我会在这里添加一些链接以便它继续下去,但我认为最好的事情不是长篇文章可以用Google搜索。

CFC Best Practices

Macromedia CFC Best Practices

更新:已将其制作为社区维基

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

快速的四件事:

  1. 获取CFCDev mailing list(或现在的Google群组)。

  2. Sean Corfield在CFML演讲中的
  3. PDF of a Design Patterns是一个很好的快速阅读。

  4. http://www.cfdesignpatterns.com有一些很好的东西,可以链接到高质量的CFC设计文章。

  5. 关于Rob Brooks-Bilson博客的CFML中design patterns的文章。

答案 2 :(得分:0)

在使用ColdBox Framework之前,我没有看到任何关于使用Momentos捕获属性的帖子;但是,现在我的所有bean都有一个getMomento()和setMomento()方法。对于需要将信息从bean传递到DAO其他对象的任何人,我鼓励这是最佳实践。

在我的测试中,获取一个momento比传递bean并获取属性要快得多。这是一个例子:

<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>

干杯,

Aaron Greenlee My Site

答案 3 :(得分:0)