Tôi có cấu trúc dự án của tôi như vậy:PSR-4 autoloader Fatal error: Class không tìm thấy
src/
├─ Model/
└─ User.php
tập tin user.php của tôi trông như thế này:
<?php
namespace Bix\Model;
class User {
Và composer.json autoloader của tôi là thế này:
"autoload": {
"psr-4": {
"Bix\\": "src/"
}
}
Cuối cùng bootstrap.php của tôi là thế này:
use Bix\Model\User;
// PSR-4 Autoloader.
require_once "vendor/autoload.php";
Tuy nhiên nếu tôi cố gắng và tạo ra một new User()
, tôi nhận được lỗi Fatal error: Class 'User' not found in /var/www/public/api/v1/index.php on line 8
Nhìn vào autoload_psr4.php soạn nộp có vẻ ok:
// autoload_psr4.php @generated bởi Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname(dirname($vendorDir));
return array(
'XdgBaseDir\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'),
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
'KeenIO\\' => array($vendorDir . '/keen-io/keen-io/src'),
'Bix\\' => array($baseDir . '/src'),
);
Ai có thể chỉ ra nơi tôi đang làm sai với những điều trên?
tôi cập nhật các composer.json như thế này: "Bix \\": "src /" và cấu trúc thư mục này : src/Model/User.php tuy nhiên tôi vẫn gặp lỗi 'class User not found' – JeremyKirkham
@JeremyKirkham sau khi bạn cập nhật cấu hình autoload, bạn phải chạy 'composer dump-autoload' để cập nhật autoloader –
Tôi đã làm điều này rồi . Tôi đã cập nhật câu hỏi của mình với trình tự động tải thư mục/cấu trúc mới. – JeremyKirkham