2013-02-18 27 views
9

Tôi đã gặp tình huống khi sử dụng trình soạn nhạc để tải lớp trong ứng dụng Silex.Tự động tải soạn không tải lớp trong Silex

lớp này tọa lạc tại địa chỉ:

src/custom/UserProvider.php 

Trong composer.json của tôi, tôi đã thêm dòng này:

"autoload": { 
    "psr-0": { 
     "CustomNamespace": "src/custom/" 
    } 
} 

Bên trong tập tin UserProvider.php của tôi, tôi đã có:

namespace CustomNamespace; 

Khi tôi chạy bản cập nhật soạn nhạc trong bảng điều khiển, dòng này đã thêm ed đến /vendor/composer/autoload_namespaces.php

'CustomNamespace' => $baseDir . '/src/custom/', 

Tuy nhiên, khi tôi cố gắng sử dụng các lớp:

new CustomNamespace\UserProvider(); 

Tôi đã nhận lỗi này:

Fatal error: Class 'CustomNamespace\UserProvider' not found in /home/ubuntu/www/project/web/index.php on line 27

Có ai biết chuyện gì vậy? Cảm ơn!

+10

Tệp có tên là src/custom/CustomNamespace/UserProvider.php không? – Maerlyn

+0

hm ... Tôi sẽ thử cái này! – joaobarbosa

Trả lời

8

Vấn đề chính xác là những gì @Maerlyn nói trong nhận xét của mình.

everthing hoạt động tốt khi tôi chuyển tập tin của tôi để src/tùy chỉnh/CustomNamespace/UserProvider.php

1

tôi sẽ chỉ cần thêm một lưu ý ở đây nếu có ai đi qua vấn đề của tôi, mà hiển thị bản thân giống như này câu hỏi, nhưng phải làm với sự nhạy cảm của trường hợp.

Tôi đã chuyển trang web của mình từ OS X (không phân biệt chữ hoa chữ thường) sang Ubuntu (phân biệt chữ hoa chữ thường), điều này đã phàn nàn rằng lớp học không tồn tại. Tập tin được đặt tên là myclass.php, và khi tôi đổi tên nó thành MyClass.php nó hoạt động.

+0

Điều cần biết, @Hans Nilsson! Thx để bổ sung cho câu hỏi của tôi :) – joaobarbosa

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