Oggi ho lavorato per rendere AVBlog compatibile con le versioni di Coldfusion precedenti alla 7 e con BlueDragon.
Approfittando del fatto che se esiste Application.cfc la versione 7 di CFMX non si cura della presenza o meno di un file Application.cfm ho creato quest'ultimo che viene quindi utilizzato solamente se il codice viene eseguito con BlueDragon o versioni precedenti di CF.
Per mantenere comunque il codice coerente e per evitare duplicazione ho comunque utilizzato in Application.cfm i metodi definiti da Application.cfc che in questo caso diventa un normalissimo componente e come tale può essere utilizzato anche nelle versioni di CFMX precedenti.
Un prototipo di file Application.cfm è questo:
<cfapplication
name = "AVBlog";
applicationTimeout = "#createTimeSpan(0,2,0,0)#";
sessionManagement = "yes"
sessionTimeout = "#createTimeSpan(0,0,20,0)#";
>
<cfscript>
objApplication = createobject('component','Application');
</cfscript>
<cfif not isdefined('application.id')>
<cfscript>
objApplication.onApplicationStart();
</cfscript>
</cfif>
<cfif not isdefined('session.id')>
<cfscript>
objApplication.onSessionStart();
</cfscript>
</cfif>
<cfscript>
objApplication.onRequestStart('dummy');
</cfscript>
In questo modo il codice che viene eseguito in caso di inizializzazione dell'applicazione, della sessione o della request rimane sempre all'interno dei metodi di Application.cfc.
Vantaggi reali in un approccio di questo tipo non ce ne sono, un unico Application.cfm risolverebbe il problema alla radice, fatto sta che a me l'idea di Application.cfc è sempre piaciuta ed in questo modo riesco ad ottenere anche una retrocompatibilità.
Approfittando del fatto che se esiste Application.cfc la versione 7 di CFMX non si cura della presenza o meno di un file Application.cfm ho creato quest'ultimo che viene quindi utilizzato solamente se il codice viene eseguito con BlueDragon o versioni precedenti di CF.
Per mantenere comunque il codice coerente e per evitare duplicazione ho comunque utilizzato in Application.cfm i metodi definiti da Application.cfc che in questo caso diventa un normalissimo componente e come tale può essere utilizzato anche nelle versioni di CFMX precedenti.
Un prototipo di file Application.cfm è questo:
<cfapplication
name = "AVBlog";
applicationTimeout = "#createTimeSpan(0,2,0,0)#";
sessionManagement = "yes"
sessionTimeout = "#createTimeSpan(0,0,20,0)#";
>
<cfscript>
objApplication = createobject('component','Application');
</cfscript>
<cfif not isdefined('application.id')>
<cfscript>
objApplication.onApplicationStart();
</cfscript>
</cfif>
<cfif not isdefined('session.id')>
<cfscript>
objApplication.onSessionStart();
</cfscript>
</cfif>
<cfscript>
objApplication.onRequestStart('dummy');
</cfscript>
In questo modo il codice che viene eseguito in caso di inizializzazione dell'applicazione, della sessione o della request rimane sempre all'interno dei metodi di Application.cfc.
Vantaggi reali in un approccio di questo tipo non ce ne sono, un unico Application.cfm risolverebbe il problema alla radice, fatto sta che a me l'idea di Application.cfc è sempre piaciuta ed in questo modo riesco ad ottenere anche una retrocompatibilità.
Categorie:
AVBlog

















![Validate my RSS feed [Valid RSS]](/images/rssvalid.gif)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](/images/atomvalid.png)

