riflettendoci, avevo raggiunto una conclusione simile, anche se non ho verificato, quindi grazie per la spiegazione.
ovviamente adesso funziona tutto e abbiamo il layer delle form separato da quello del db. Gianni 2009/12/10 Simone Deponti <[email protected]> > On Wed, 9 Dec 2009 12:36:06 +0100 > Gianni Cozzolongo <[email protected]> > wrote: > > > Ciao, > > > > > e' necessario creare un istanza dell'utility ogni volta che si vuole > > accedere al db? > > > > La risposta breve: no. > > La risposta lunga: > > non ne sono sicuro al 100% perché non mi sto a spulciare gli internals > di Z3 ogni giorno, ma il codice: > > fancy_utility = getUtility(IFancy, u"fancyutility") > > non è detto che crei sempre l'utility: diciamo, semplificando davvero > molto, che zope si tiene le chiamate a getUtility in cache e se hai già > chiamato getUtility con quei parametri ti ritorna direttamente l'istanza > dell'utility senza __call__are il factory di nuovo. > Detto ciò, io non farei però conto sul fatto che quell'istanza sia un > singleton, difatti se non ricordo male questa "specie di cache" del > component registry è threadlocal. > In sostanza è molto difficile sapere se è un'istanza "nuova" o > "vecchia" ma il fatto è che, per quanto riguarda le utility, non > dovrebbe importartene a livello di logica. > > Per quanto riguarda le prestazioni beh, non ti devi preoccupare perché > ci ha già pensato Z3 ;) > > Riassumendo, consiglio di fare i getUtility sempre all'interno di un > metodo: nell'__init__ se viene usata in più metodi o direttamente nel > metodo (senza agganciarla al self) se va usata solo in quello. > > _______________________________________________ > Plone-IT mailing list > [email protected] > http://lists.plone.org/mailman/listinfo/plone-it > http://www.nabble.com/Plone---Italy-f21728.html >
_______________________________________________ Plone-IT mailing list [email protected] http://lists.plone.org/mailman/listinfo/plone-it http://www.nabble.com/Plone---Italy-f21728.html
