PSR-0 is an autoloading standard for PHP proposed by PHP-FIG (PHP Framework Interoperability Group) to help organize source code in a structured way, making it easy to autoload when necessary. However, PSR-0 is now outdated and has been replaced by PSR-4. If you still want to use PSR-0, here’s how to do it:
1. Directory Structure
According to PSR-0, directories should mirror the namespace structure of classes. For example, if you have a class Acme\Foo\Bar
, the directory structure should be:
src/
└── Acme/
└── Foo/
└── Bar.php
2. Define the Autoloader
You can write a custom autoloader for PSR-0 in PHP using the spl_autoload_register
function. Here’s an example:
spl_autoload_register(function ($class) {
// Convert namespace to directory structure
$class = str_replace('\\', DIRECTORY_SEPARATOR, $class);
// Add directory path to the file
$file = __DIR__ . '/src/' . $class . '.php';
if (file_exists($file)) {
require_once $file;
}
});
3. Using Composer
Composer supports PSR-0 autoloading through the composer.json
file. Just configure it as follows:
{
"autoload": {
"psr-0": {
"Acme\\": "src/"
}
}
}
After setting up, run the command:
composer dump-autoload
Composer will create the autoload file for you, and you just need to require 'vendor/autoload.php'
in your code.
Note: Switching to PSR-4 is recommended for better performance and simpler configuration.