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