Back to top

Autore Topic: problema salvataggio oggetto JTable nella sessione  (Letto 2466 volte)

Offline jos_simo

  • Nuovo arrivato
  • *
  • Post: 2
    • Mostra profilo
problema salvataggio oggetto JTable nella sessione
« il: 02 Ago 2010, 20:55:52 »
Sto sviluppando un componente per Joomla 1.5 ho verificato questo problema:
Ho la necessità di salvare un oggetto che estende la classe JTable nella sessione, il problema si verifica quando l'oggetto viene deserializzato poiche'  nella sessione viene salvata anche la variabile privata $_db di tipo JDatabase. Il problema si verifica quando viene deserializzata questa variabile poiche' e' ammesso avere una sola istanza dell'oggetto Jdatabase, invece in questo modo se ne creano due, uno creato correttamente in qualche punto del codice con una chiamata di JFactory::getDBO() e un altro creato scorrettamente recuperandaolo dalla sessione. Poiche' questo non va bene in un modo che non ho ben capito al secondo oggetto viene assegnato un null pointer e l'oggetto JTable recuperato dalla sesisone non puo' più accedere al DB. Si risolve riassegnando il corretto oggetto JDatabase alla variabile  $_db di JTable, ma a mio avviso sarebbe stato molto meglio che la libreria non creasse un alias di JDatabase con $_db  ma accedesse al db sempre usando la variabile statica ritornata da Jfactory::getDBO().

Vorrei chiedere gentilmente un opinione al riguardo?

ciao

mau_develop

  • Visitatore
Re:problema salvataggio oggetto JTable nella sessione
« Risposta #1 il: 02 Ago 2010, 22:09:54 »
... a capirci qualcosa di ciò che hai detto..

Ho la necessità di salvare un oggetto che estende la classe JTable nella sessione,
---------------------------------------------------
un oggetto non estende una classe, una classe estende un'altra, all'interno vengono costruiti o meno oggetti e metodi per accedervi.

il resto poi ...mistero....


M.

Offline jos_simo

  • Nuovo arrivato
  • *
  • Post: 2
    • Mostra profilo
Re:problema salvataggio oggetto JTable nella sessione
« Risposta #2 il: 03 Ago 2010, 10:01:27 »
In effetti sono stato poco chiaro...
Nella libreria di joomla c'e' la classe JTable.
Questa classe ha un attributo $_db di tipo JDatabase
Ipotizziamo che il mio oggetto si chiami $a e che appartiene ad una classe che estende JTable
Se salvo $a nella sessione con Jfactory::getSession()->set('a',serialize($a) ) l'attributo $_db si salva correttamente ma non si riesce a recuperarlo per il problema descritto prima

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:problema salvataggio oggetto JTable nella sessione
« Risposta #3 il: 07 Ago 2010, 22:14:30 »
ciao,
 scrivi, nella classe derivata, i metodi __sleep e __wakeup per rimuovere il riferimento a $_db.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif