Classe / Oggetto con diversi set di configurazioni, singleton ecc. (PHP)

1

Voglio produrre codice gestibile per configurare una o più classi in modo diverso a seconda che si tratti di un ambiente di produzione o di sviluppo.

Ad esempio, creando una classe / oggetto Paypal che gestisce le chiamate API a Paypal, utilizzando impostazioni diverse a seconda di qualche tipo di switch globale impostato su Dev o Live. Il primo si collegherebbe all'account sandbox, l'altro all'account live.

Voglio mantenerlo il più semplice possibile - Non caricare le variabili di configurazione da un file o da un database, ma invece specificarle nel costruttore di una sottoclasse, una sottoclasse per dev e una per live, o simili:

class Paypal {
    private $endpointUrl;
    public static function makeSandbox(){
        return new Paypal('http://....');
    }
    public static function makeLive(){
        return new Paypal('http://....');
    }
    // ....
    public function Paypal($url){
        $this->endpointUrl = $url;
    }
}

Tuttavia questo mi lascia con così tante domande, come per le altre classi la cui configurazione è diversa tra live / server, posso memorizzare le diverse inizializzazioni nella sua classe, o dovrei avere una classe dedicata a tutti i dettagli di configurazione, dovrebbe essere un singleton e così via.

L'applicazione sarà piuttosto semplice e sarà gestita solo da me, quindi l'idea dei file di configurazione XML, ecc., sembra esagerata, un file di configurazione PHP con un'istruzione switch e le variabili globali sembrano una cattiva forma. L'utilizzo di una sorta di classe globale Config porta un intero carico di domande. Mi sento abbastanza sopraffatto qui. Ho letto e sembra che ci siano così tante opinioni.

L'unica regola che mi viene in mente è usare i modelli OOP per risolvere un problema, non solo per il gusto di farlo. Essendo un sito molto piccolo con solo me lo sviluppo, sono molto titubante nell'introdurre più classi o oggetti extra solo per gestire due insiemi di configurazioni globali.

Aiuta l'aiuto

    
posta CL22 23.04.2014 - 15:32
fonte

0 risposte