PHP - PSR 0 - Costanti di configurazione

1

Questa domanda riguarda le librerie autoloaded PSR-0 e il modo in cui le costanti di configurazione principale dovrebbero essere dichiarate e utilizzate.

Dal tuo punto di vista (lib / framework developer), dove / come dovrebbero essere dichiarate le costanti PHP di configurazione della libreria (come ESCAPE_SOMETHING , USE_DOM , API_URL , ...) in modo tale che

  • il tuo codice può facilmente indirizzarli
  • Il codice client
  • può facilmente modificarli in base alle esigenze

C'è qualche convenzione, raccomandazione o anche qualcosa che ho perso in PSR-0 di cui dovrei essere a conoscenza?

    
posta Jérôme 09.01.2014 - 15:32
fonte

1 risposta

1

This question is about PSR-0 autoloaded libraries

Penso che tu stia confondendo due diversi problemi. Trovare e caricare il codice PHP per FooClass è (o dovrebbe essere) un problema diverso da come dovrebbe comportarsi new FooClass() o FooClass::staticThing() .

Idealmente, FooClass non dovrebbe prendersi cura se io (il tizio che usa la libreria) fa affidamento su un autoloader o se ho hardcoded la mia istruzione require_once() .

library configuration PHP constants

Prima regola di terra ... mai con costanti da define() . Inquinare lo spazio dei nomi globale è una cattiva idea, e IIRC anche le nuove funzionalità dei namespace sono un po 'strane a riguardo. Le costanti di classe sulle classi della libreria sono accettabili, ma come consumatore-libreria probabilmente non le modifichi manualmente.

From your point of view (lib/framework developer), where/how should be declared your library configuration PHP constants

Vuoi dire, come preferirei che il codice utente impostasse le opzioni che influiscono sul mio codice? Preferirei qualcosa del tipo:

FooLibraryConfigurator::set("a","b");
FooClass::doStuffThatNeededConfData();

In altre parole, configura la mia libreria in base a un meccanismo che ho creato per te. : P

    
risposta data 09.01.2014 - 20:30
fonte

Leggi altre domande sui tag