2013-08-09 11 views
11

Mam utworzyć niestandardowy pakiet kompozytora, ale mam problemy z ustawieniem dla niego opcji automatycznego ładowania.autoloader kompozytu psr-0 namespaces

Wszystkie moje klasy są objęte obszarem nazw MyNamespace/Common. Na przykład dla uwzględnienia mojej klasy ArrayHelper używam Mynamespace/Common/Helper/ArrayHelper.

To jest odpowiednia część mojego composer.json:

"autoload": { 
    "psr-0": { "MyNamespace\\": "" } 
} 

Znam to: composer.json/autoload

Każda pomoc?

Odpowiedz

13

Musisz poruszać się po lokalizacji pliku swojej przestrzeni nazw.

"autoload": { 
    "psr-0": { "MyNameSpace": "./<path to your parent directory>" } 
} 

Na przykład, to jest moja struktura katalogów:

composer.json 
source 
    \-Data 
    |-Controller 
    \-Repository 

Następnie w pliku composer.json:

"autoload": { 
    "psr-0": { "MyNameSpace": "source/Data" } 
} 

Następnie, mogę zadzwonić do nazw z PHP przez

/* namespace for classes in controller directory */ 
namespace MyNameSpace\Controller 
/* namespace for classes in repository directory */ 
namespace MyNameSpace\Repository 
+0

Moja struktura pakietu była podobna do symfony2 com poenenty, więc musiałem skonfigurować katalog docelowy w następujący sposób: http://getcomposer.org/doc/04-schema.md#target-dir – brpaz

+1

ogranicznik przestrzeni nazw powinien używać "\" nie "/" – thenetimp

+6

Czy to nie PSR? -4? –

Powiązane problemy