«

»

Sep 13

Print this Post

Como eu inicializo um CFC e ao mesmo tempo crio ele?

Em muitos exemplos utilizam CFC, a chamada que cria o CFC também chama um método init(). Isto é feito tanto para criar uma instância de um CFC, bem como inicializá-lo com algumas informações. Assim, por exemplo, você pode querer passar em um nome de fonte de dados para um CFC para que o componente pode realizar consultas de dados. Como isso é feito?

Este é um processo de 2 etapas. A primeira é chamar o CFC usando a sintaxe, como no exemplo abaixo:


<cfset cachedQuery = createObject("component", "CachedQuery").init(dsn)>

Isto diz para criar uma variável chamada cachedQuery que irá conter uma referência a um CFC. O CFC é criado usando a função CreateObject (). Ao mesmo tempo que o CFC é criado, um método de CFC chamado init () é executado. Tudo o que é retornado do método init() é o que vai realmente ser carregado na variável CachedQuery. Isso é chamado changing método. É, essencialmente, o ato de chamar várias funções em uma linha. O resultado da primeira operação (CreateObject) é passado para a próxima operação (init).

O método init CFC poderia ser algo como isto:


<cffunction name="init" access="public" returntype="CachedQuery" output="false">
   <cfargument name="dsn" type="string" required="yes">
   <!--- Set the DSN to the local variables for the CFC --->
   <cfset variables.dsn = arguments.dsn>
   <!--- Return the query object --->
   <cfreturn this>      

Muito simplesmente, ele está esperando um seqüência de caracteres para ser transmitido em cadeia e que seja definida como uma variável local para o CFC chamado DSN. O ponto importante aqui é duplo. Em primeiro lugar, estamos a estabelecer um returntype para este método (cffunction) para o nome do CFC. Isso não é 100% necessário e você pode ignorar completamente o tipo de retorno, se quiser, mas é uma boa idéia de tê-lo aqui. A segunda coisa é o mais importante. Estaremos devolvendo este a partir do método. Esta é uma referência para o CFC inteiro. O resultado final é que uma referência para o CFC é passado de volta para a chamada original e então atribuído à variável externa, resultando em uma variável que contém uma referência para o CFC.

by Michael Dinowitz

Permanent link to this article: http://ensina.me/coldfusion/como-eu-inicializo-um-cfc-e-ao-mesmo-tempo-crio-ele/

Leave a Reply