2013-08-09 26 views
11

Tôi đã tạo một gói trình soạn thảo tùy chỉnh nhưng tôi gặp khó khăn để đặt các tùy chọn tự động tải chính xác cho nó.composer autoloader psr-0 namespaces

Tất cả các lớp học của tôi dưới MyNamespace/Common không gian tên. Vì vậy, ví dụ để bao gồm lớp học của tôi ArrayHelper tôi sử dụng Mynamespace/Common/Helper/ArrayHelper.

Đây là phần có liên quan của composer.json tôi:

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

Tôi đã đọc này: composer.json/autoload

Bất kỳ sự giúp đỡ?

Trả lời

13

Bạn phải điều hướng vị trí tệp của không gian tên của bạn.

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

Ví dụ, đây là cấu trúc của tôi thư mục:

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

Sau đó, trong tập tin composer.json:

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

Sau đó, tôi có thể gọi namespace từ PHP bởi

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

Cấu trúc gói của tôi tương tự như symfony2 com poenents vì vậy tôi đã phải cấu hình một thư mục đích như thế này: http://getcomposer.org/doc/04-schema.md#target-dir – brpaz

+1

định nghĩa không gian tên dấu phân tách nên sử dụng "\" không "/" – thenetimp

+6

Không phải là PSR này -4? –

Các vấn đề liên quan