Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Serialize tutto ma non le resource

    Citando da php.net

    serialize() handles all types, except the resource-type.
    La cosa è un peccato, perchè sto scrivendo una classe che manipola il database e, portandola in giro serializzandola e unserializzandola mi scoccia un po' dover ogni volta passare come parametri delle funzioni la variabile $db, che contiene appunto il collegamento al database.

    Infatti all'inizio pensavo di creare una variabile privata $db interna alla classe, contenente appunto la resource, ma nell'operazione di "trasporto" si perde.

    Secondo voi esistono altri modi per aggirare questo problema?

  2. #2
    Quali vantaggi ottieni dal serializzare una classi di manipolazione del database?
    Quali dati contiene?

  3. #3
    Sono stato effettivamente criptico

    Per esempio immagino di avere una classe Utente fatta a grandi linee così:

    Codice PHP:

    class Utente {

    private 
    $db;

    function 
    __construct(..... ,$db) {
      
    $this->db $db;
    }

    function 
    setOnline() {
      
    mysql_query("blabla",$this->db);
    }

    Una classe simile mi è molto comoda per gestire gli utenti, senza dover ogni volta ripetere gli infiniti comandi mysql: mi basta la chiamata di una funzione e via in tranquillità (ad esempio un setUsername, getUsername etc etc).

    In particolare quel $this->db è il link ad un precedente collegamento al database, fatto in un file che di solito includo dall'esterno.

    E' probabilissimo che sbagli approccio sull'inclusione!

  4. #4
    Se la classe non contiene dati, è pressochè inutile serializzarla. Ricreala passando i parametri di connessione al database.

  5. #5
    Originariamente inviato da filippo.toso
    Se la classe non contiene dati, è pressochè inutile serializzarla. Ricreala passando i parametri di connessione al database.
    Tu per dati intenderesti lo username, la password, la presenza online o meno, tutti inseriti in variabili private?
    Insomma sono informazioni che altrimenti dovrei ripescare ogni volta, ricreando come suggerisci tu la classe...

  6. #6
    Tralasciando il fatto che le risorse non si possono serializzare, nel tuo caso la serializzazione e' inutile, non apporta alcun vantaggio pratico. Il tempo impiegato dal PHP per de-serializzare l'oggetto si discosta di poco del tempo impiegato a ricreare la classe da zero.

    Inoltre dovrsti provare una delle tante librerie di astrazione dei database (es. ADODb) invece di riscrivere tutto da zero. La tua produttività e qualità del codice ne risentiranno positivamente.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.