Tự động tải PSR-0

PSR-0 là một chuẩn tự động tải mã nguồn PHP được đề xuất bởi PHP-FIG (PHP Framework Interoperability Group) để giúp tổ chức mã nguồn một cách có cấu trúc và dễ dàng tự động tải (autoload) khi cần thiết. Tuy nhiên, PSR-0 hiện đã lỗi thời và được thay thế bởi PSR-4. Nếu bạn vẫn muốn sử dụng PSR-0, đây là cách thực hiện:

1. Cấu trúc thư mục

Theo PSR-0, các thư mục phải phản ánh không gian tên (namespace) của các lớp. Ví dụ, nếu bạn có lớp Acme\Foo\Bar, cấu trúc thư mục phải là:

src/
└── Acme/
└── Foo/
└── Bar.php

2. Định nghĩa autoloader

Bạn có thể tự viết autoloader theo PSR-0 với PHP bằng cách sử dụng hàm spl_autoload_register. Đây là ví dụ:

spl_autoload_register(function ($class) {
// Đổi tên không gian thành đường dẫn thư mục
$class = str_replace('\\', DIRECTORY_SEPARATOR, $class);

// Thêm đường dẫn thư mục tới file
$file = __DIR__ . '/src/' . $class . '.php';

if (file_exists($file)) {
require_once $file;
}
});

3. Sử dụng Composer

Composer hỗ trợ tự động tải PSR-0 thông qua file composer.json. Chỉ cần cấu hình như sau:

{
"autoload": {
"psr-0": {
"Acme\\": "src/"
}
}
}

Sau khi cấu hình, chạy lệnh:

composer dump-autoload

Composer sẽ tạo file autoload cho bạn, và bạn chỉ cần require 'vendor/autoload.php' trong mã của mình