Questa domanda riguarda la gestione degli spazi dei nomi e dei test unitari in ZF2.
Diciamo che ho un modulo chiamato Application
. Ho costruito composer.json
per essere così
"autoload":{
"psr-4": {
"Application\" : ["module/Application/src", "module/Application"],
}
}
dove il primo percorso è per il codice principale nella cartella src
come da PSR-4, e il secondo percorso è utilizzato accesso test
namespace.
Quello che ottengo è questa struttura di directory:
module
/Application
/public
/src
/Form
Form.php //namespace Application\Form;
/test
/Form
FormTest.php //namespace Application\test\Form
/test
/Form
FormTest.php //namespace Application\test\Form;
Funziona, e sembra funzionare sia in Zend Studio, sia in PHP-CLI (riga di comando). Per la classe FormTest.php
, quella in src
ha priorità nonostante entrambi si trovino nello stesso spazio dei nomi. Li ho messi entrambi solo per un esempio che posso usare in entrambe le posizioni.
Domanda: Sono preoccupato che avere due percorsi nel compositore causi un lavoro extra per il risolutore del nome della classe, cioè quando la classe non viene trovata in modo pulito, in src
, ZF2 fa una ricerca in test
.
Posso migliorare il codice? È preferibile utilizzare solo lo spazio dei nomi src
e spostare il mio test
in src/test
directory e spazio dei nomi? Cioè, sbarazzarsi della cartella module/Application/test
e mantenere module/Application/src/test
? Esistono le best practice consigliate per questo?