Mostrando entradas con la etiqueta component. Mostrar todas las entradas
Mostrando entradas con la etiqueta component. Mostrar todas las entradas

miércoles, 5 de marzo de 2014

Guardar componentes de Coldfusion en espacios persistentes


• Cuando creamos componentes con la etiqueta <cfobject> o con createObject(),
podemos almacenar la instancia en:
■ En una zona de almacenamiento local (local scopes)
■ En una zona de almacenamiento pesistente (persistent scopes) como podría ser:
– Request
– Session
– Application

Nota: Cuando almacenamos un componente en una zona persistente, su código también queda almacenado en esa zona, por los que cuando cambiamos el código del mismo, éste no se refresca en forma automática.

Crear instancias en espacios persistentes

• Crear una instancia directamente en los espacios persistentes:

■ <cfset application.cfcAnimal = createObject("component","components.animal")
■ <cfobject component="components.animal" name="application.myAnimal">

• Primero crear la instancia y luego subirla al espacio persistente:

■ <cfset myAnimal = createObject("component", "components.animal")>
■ <cfset application.myAnimal = myAnimal>

Acceder a los componentes en zonas o espacios persistentes

•Al igual que otros componentes, podemos acceder a sus métodos y propiedades por medio del espacio persistente (cached scope):

<cfset application.myAnimal =createObject("component", "components.animal")>
<cfset application.myAnimal.name = “Value”>
<cfset myResult = application.myAnimal.MyMethod()>

http://www.pacoarce.com



jueves, 20 de febrero de 2014

Los métodos getter y setter en Coldfusion 10


Uno de los principios fundamentales en la programación orientada a objetos es que el usuario sólo debe de interactuar con las propiedades del componente o clase por medio de funciones getter y setter, nunca en forma directa.

Adicionalmente, por medio de los métodos getter y setter podremos hacer validaciones de los valores recibidos o modificados:

<cfcomponent>

<cfset variables.myNumericValue = 0>

<cffunction name="getMyNumericValue" access="public" output="false" returnType="numeric">
<cfreturn variables.myNumericValue>
</cffunction>

<cffunction name="setMyNumericValue" access="public" output="false" returnType="void">
<cfargument name="myValue" type="numeric" required="true" >
<cfset variables.myNumericValue = myValue>
</cffunction>

<cfcomponent>

Uso de una propiedad en un componente <cfproperty>

• Las propiedades añadidas con <cfproperty> son vistas desde la documentación.
• La etiqueta <cfproperty> contiene algunos atributos que aydan en la definición de la propiedad
• La etiqueta <cfproperty> genera automáticamente, por medio de el atributo accesors,  los métodos getter y setter

Atributos de la etiqueta <cfproperty>

• name: nombre de la propiedad
• default: valor por omisión de la propiedad
• displayName: nombre descriptivo de la propiedad
• required: define si la propiedad es requerida
• serializable:determina si la propiedad es serializable
• type: tipo de dato de la propiedad

El atributo Accessors

• <cfcomponent> sólo generan los getters y setters en forma automática cuando de tiene el atributo accesors = "true".

Ejemplo:

<cfcomponent accessors=”true”>

<cfproperty name="dsn" displayName="dataSource" hint="Data source to be used in this component" type="string" />

<cfset variables.myNumericValue = 0>

<cffunction name="GetMyNumericValue" access="public"returnType="numeric">
<cfreturn variables.myNumericValue>
</cffunction>

<cffunction name="SetMyNumericValue" access="public" returnType="void">
<cfargument name="myValue" type="numeric" required="true" >
<cfset variables.myNumericValue = myValue>
</cffunction>

</cfcomponent>

http://www.pacoarce.com

miércoles, 5 de febrero de 2014

Añadir métodos a los componentes en Coldfusion 10

Añadir métodos a los componentes en Coldfusion 10

Los métodos son definidos dentro de los componentes:
Para definir los métodos, utilizamos uno de los siguientes modificadores de acceso:

private: disponible sólo en el componente donde es declarado  el método. También es válido en las clases extendidas de la clase original.
package: disponible en la clase donde se define el método, en las clases extendidas y en otras clases del paquete. Un paquete son otras clases definidas dentro del folder de la aplicación.
public: disponible para todas las clases de la aplicación.
remote: disponibles en forma local o remota por medio de una URL, Flash o web server.

Los métodos de las instancias

Funcionan igual  que las funciones definidas por el usuario.
Generalmente trabajan con los datos de la misma instancia.
Interactúan con otros métofos de la instancia


<cfset variables.birthDate = CreateDate(1975,6,9)>
<cffunction name="CalculateAge" access="public" returnType="numeric" >
<cfreturn DateDiff("yyyy", variables.birthDate, Now())>
</cffunction>

Llamar a un método

<cfset myInstance = createObject("component","components.animal")>
<cfoutput>
   Age : #myInstance.CalculateAge()#
</cfoutput>

http://www.pacoarce.com



domingo, 15 de diciembre de 2013

Las instancias de los componentes en Coldfusion 10

Existen tres maneras de crear o llamar a un componente en Coldfusion 10:

• <cfinvoke> llama el metodo dentro de un componente
• <cfobject> crea una instancia de un componente
• createObject() Crea una sintancia de un componente

Caracteristicas de las instancias de los componentes

• Con una instancia se pueden llamar a varios metodos de componentese methods
• Podemos almacenar informacion en una instanciaa
• Podemos subir una instancia a la memoria cache
• Podemos crear diferentes instancias con diferentes datos del mismo componente

Crear una instancia con <cfobject>

• Use la etiqueta <cfobject> con las siguientes propiedades:
  • component: es la ruta del archivo del componente, como se utiliza en <cfinvoke>
  • name: el nombre que ser'a utilizado para llamar al componente en los programas
  • type: el tipo de objeto que sera instanciado (opcional)

• Ejemplo

<cfobject component="componentes.alumno" name="alumno" >

Uso de las instancias de un componente
Por medio de las instancias de un component de ColdFusion podemos llamar a los metodos y propiedades almacenadas en el mismo, por ejemplo:

<cfobject component="componentes.alumno" name="alumno" >
<cfset cali = alumno.calificacion >
<cfset promedio = alumno.promedio() >

Tambien podemos llamar a un metodo al momento de crearlo:


<cfset miAlumno= createObject("cfcAlumno", "components.alumno").init()>



Más información en: http://www.pacoarce.com