How can an autoloader be effectively implemented in PHP to handle the loading of Monolog and PSR files for a project?

When working on a PHP project that requires the use of external libraries like Monolog and PSR files, it is important to implement an autoloader to handle the loading of these files efficiently. By using an autoloader, you can avoid the need to manually include each file, making the code more maintainable and easier to manage.

// Autoloader implementation to handle loading of Monolog and PSR files
spl_autoload_register(function ($class) {
    // Define the base directory for the namespace prefix
    $base_dir = __DIR__ . '/vendor/';

    // Replace namespace separator with directory separator
    $file = $base_dir . str_replace('\\', '/', $class) . '.php';

    // If the file exists, require it
    if (file_exists($file)) {
        require $file;
    }
});

// Example usage of Monolog
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// Create a new Monolog logger
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
$log->addWarning('This is a warning');