Coldfusion Contech CFC - Un esempio di utilizzo

  • 22
  • Oct 2012
  • Dev @ Contech Lab
  • View: 8440 | 0 Comments

  • coldfusion | cfc | invoke

  • I Componenti Coldfusion sono uno strumento molto potente per creare e referenziare oggetti all'interno del nostro sito o meglio, all'interno del nostro sistema applicativo.

    Un esempio di Component può essere il seguente dove viene creta una semplice funzione getCateg per la selezione di categorie all'interno del nostro Blog:

    Esempio di CFC (Cold Fusion Component): file: contech.cfc

    view plain print about
    <cfcomponent output="false">

       <cffunction name="getcateg" access="public" returntype="query"
        output="false" hint="Seleziona le Categorie del Blog">

            
        <cfquery name="sel_categ" datasource="#request.datasource#">
        SELECT cms_categ.id_categ, cms_categ.categ, cms_categ.layout 
        FROM   cms_categ LEFT OUTER JOIN
            cms_doc ON cms_categ.id_categ = cms_doc.id_categ
        ORDER BY cms_categ.ord, cms_doc.pos desc
        </cfquery>
        
        <cfreturn sel_categ>
        </cffunction>
    </cfcomponent>


    Referenziare il componente richiede l'utilizzo di CFINVOKE.

    Ma nel nostro sistema si è scelto di portare i componenti CFC a livello di Application per averli sempre a disposizione in un area di memoria condivisa dall'applicazione, l'ambiente Application appunto.

    Per fare questo si è scelto di caricare il componente in Application come segue:

    view plain print about
    <cfif not isDefined("application.init") or isDefined("url.MyAppStart")>
         <cfscript>
        application.myApp = structNew();
            application.myApp.contech_compo = 
                         createObject("component""cfc.contech");
            application.init = true; // imposta valore inizializz = si

         
    </cfscript>    
    </cfif>

    A questo punto, caricato il componente nell'area Application, per utilizzarlo, non si deve fare altro che utilizzare:

    application.myApp.contech_compo.getcateg()

    per avere a disposizione i dati della query Categorie.

    E' importante capire che a questi componenti possono essere inviati valori che sono gestiti nel componente come variabili ed eseguire procedure complesse.