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