miércoles, 5 de junio de 2013

Creando una función simple en coldfusion UDF

Como ya sabemos las funciones nos ayudan a ahorrar código es decir si hay algún código que lo vamos a necesitar repetitivamente en nuestro proyecto lo más recomendable es crear una función para eso, en coldfusion es muy fácil crear una función a continuación vamos a crear una función que nos devuelva el título de una película pasándole como parámetro el id de la película, de esta manera lo único que ocuparemos escribir cada vez que queremos realizar un query para obtener el título de cualquier película seria lo siguiente:

<cfoutput>#getFilmTitle(8)#</cfoutput>

Para crear una función definida por el usuario UDF (User-defined function en inglés) solo necesita seguir los siguientes pasos:
1. Comience con la etiqueta <cffunction> todo elcódigoo que se usara para la función deberá ir en esta etiqueta y una vez finalizado el código necesitará cerrar la etiqueta </cffunction>
2. Si necesita que su función reciba un parámetro esto deberá especificarse con la etiqueta <cfargument> se usa una etiqueta para cada parámetro que se va a utilizar.
3. Después de la etiqueta <cfargument> usted puede utilizar cualquier cualquier código CFML que sea necesario para que su función trabaje correctamente.
4. El último paso en nuestra función será la etiqueta <cfreturn> para devolver el resultado de nuestro código ya procesado.

A continuación la función que creamos para devolver el título de la película mandando como parámetro el id de la película.


<cffunction name="getFilmTitle" returntype="string">
<cfargument name="filmID" type="numeric" required="yes">
    <cfset getFim="">
<cfquery name="getFilm" datasource="ows" cachedwithin="#createTimespan(0,1,0,0)#">
      SELECT MovieTitle FROM Films WHERE FilmID= <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.filmID#">
</cfquery>
<cfreturn getFilm.MovieTitle>
</cffunction>


UDF Tag Sintaxis
Ahora que ya hemos hecho un simple ejemplo de una función y como esta estructurada, vamos ver cada uno de las etiquetas involucradas: <cffunction>,<cfargument> y <cfreturn>

<cffunction>
name
El nombre de la función, con este nombre se va llamar la función, el nombre debe ser un identificador válido del CFML, lo que significa que solo puede contener letras, números y guiones bajos y su primer carácter tiene que ser una letra.
returnType
Opcional, puede usar este atributo para indicar el tipo de información que la función va retornar como ejemplo string, numeric, date y así sucesivamente, este atributo es opcional pero es recomendable usarlo para asegurarse que nuestra función va correr correctamente.
output
Opcional, Mientras que la mayoría de UDFs simplemente retornan un valor, una UDF puede en realidad retornar datos, generalmente este valor se pone como false (falso) de esta manera se reduce la posibilidad de que la función retorne espacios en blanco generados por el código que contenga.

<cfargument>
name
El nombre del parámetro, dentro de la función una variable va ser creada en el ámbito de variables o ARGUMENTS scope que almacenará el valor pasado al parámetro para ser usado en la función.
type
Opcional, indica el tipo de dato que se usará para la función, si la función es llamada con otro tipo de dato ColdFusion desplegará un mensaje de error al usuario.
required
Opcional, indica si el parámetro es obligatorio por defecto este valor es no.
default
Opcional, aplica para parámetros opcionales (esto es cuando required="No"), indica el valor por defecto que tomara el parámetro en caso de que no sea pasado cuando se llama la función.

<cfreturn>
(any expression)
La etiqueta <cfreturn> no tiene ningún atributo per se, simplemente se pone el valor a retornar.


Referencia: Libro de Ben Forta Web application construction kit volume 2

No hay comentarios:

Publicar un comentario