2009-03-06 18 views
9

He estado elaborando una lista de las mejores prácticas de CFC para compartir.Colección de ColdFusion CFC ¿Mejores/Prácticas recomendadas?

Hay un gran número de artículos por ahí, pero pensé que podría ser genial obtener trucos y consejos juntos aquí en un solo lugar que se han aprendido a través de la experiencia.

Voy a agregar algunos enlaces aquí para ponerlo en marcha, pero creo que lo mejor no serían los artículos largos que se pueden buscar en Google.

CFC Best Practices

Macromedia CFC Best Practices

Actualización: Esto se ha convertido en un wiki de la comunidad

+0

1) Asegúrese siempre sus resultados son reproducibles antes de notificar a la prensa ... – Shog9

+0

Esto parece un tipo de pregunta wiki de la comunidad, tal vez? En cualquier caso, me gustaría solicitar un nombre mejorado, ya que me opongo a usar "mejor" cuando una palabra más precisa es "recomendada" o "de moda", ya que lo "mejor" es casi siempre una cuestión de contexto. –

+0

Peter, hecho y listo! –

Respuesta

0

Antes de utilizar el ColdBox Framework No vi ningún post sobre el uso Momentos para capturar las propiedades en ese momento; sin embargo, ahora todos mis beans tienen un método getMomento() y setMomento(). Lo recomendaría como una buena práctica para cualquier persona que necesite pasar información de un frijol a otro objeto de DAO.

En mis pruebas, obtener un momento es mucho más rápido que pasar el grano y obtener las propiedades. He aquí un ejemplo:

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

Cheers,

Aaron Greenlee My Site

Cuestiones relacionadas