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

    Problema con getInstance e parametri db

    Salve a tutti,
    ho un problema che a molti di voi sembrerà banale, ma io ci sto impazzendo!
    In una mia classe ho realizzato un metodo statico getInstance('DB') che mi ritorna un oggetto database (nel caso non sia già istanziato); i parametri di connessione al database però li tengo in un file config.php a parte.
    Quello che mi chiedo è: come posso recupeare queste informazioni da config.php direttamente in getInstance ad ogni sua chiamata senza doverli passare come argomento al metodo?Ci sto sbattendo la testa..

    Grazie per l'aiuto!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    non ho ben capito il problema: riesci a leggere il "config.php" al di fuori del metodo ma non dentro?

    Inoltre non ho ben capito cosa intendi con "ad ogni chiamata": durante l'esecuzione i dati possono variare? questo sembrerebbe in contrasto con l'impostazione di metodo come "statico".

    Potresti chiarire con un esempio? Soprattutto la questione "ad ogni chiamata" può essere importante.

  3. #3
    Si perdonami, non sono stato molto chiaro, provo a spiegare meglio:

    Diciamo che ho una classe A con un metodo statico getDB() che ritorna un oggetto B.
    B è una classe per connettersi a un db che richiede, per essere istanziata, i parametri di accesso (host, user, pass, dbname).Mi trovo quindi nella situazione di (semplifico):
    codice:
    A::getDB() {
        ritorna new B(host, user, pass, dbname);
    }
    I valori di host,user, etc sono però in un file config.php e non potendo salvare queste informazioni come campi di A, li devo in un qualche modo "tirar fuori" al runtime ogni volta che chiamo getDB();la mia domanda è appunto: come?Non ci arrivo proprio :master:
    Grazie per l'attenzione!

  4. #4
    Mi sono dimenticato di specificare:
    in config.php ci sono solo le variabili di connessione al db
    Codice PHP:
      $host "##";
      
    $user "##";
      
    $pass "##";
      
    $dbname "##"

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    è un po' più chiaro ma ho ancora un dubbio:

    riesci a leggere i parametri indipendentemente dal fatto che vadano dentro la classe o la difficoltà sta in questo? Cioè: sei in grado di leggere i dati e stamparli a video?

    se la risposta è no ti faccio sapere

    se la risposta invece è sì puoi semplicemente usare il file di configurazione (probabilmente solo con un semplice "include": non so come sia fatto però... E.C.: ho visto che hai appena postato un esempio, quindi basta "include") e poi settare delle proprietà dentro l'inizializzazione della classe A che quindi disporrà dei valori necessari. In pratica leggendo i valori nel costruttore di classe poi li puoi usare con qualcosa come new B($this->host, $this->user, $this->pass, $this->dbname);

    se vuoi maggior dettaglio posta la classe A (o la prima parte se è molto lunga)

  6. #6
    Ho risolto con l'include, grazie delle dritte!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prego!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.