almostusable / psr4-autoloader
A minimalistic PSR-4 autoloader implementation for PHP projects
Requires
- php: >=8.1
README
A minimalistic PSR-4 autoloader implementation for PHP projects.
⚠️ Warning
This autoloader is intended for internal usage only. It is a simple implementation and not recommended for production environments. For production, consider using Composer's built-in autoloader.
This autoloader only concerns itself with your project’s classes.
It deliberately ignores everything living inside vendor/ because teaching it to navigate the endless maze of third-party packages would be a ton of work—and, well, I have a life.
Installation
You can install the package via composer:
composer require almostusable/psr4-autoloader
Usage
- Configure your namespace mappings in
composer.json:
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
- Include the autoloader in your PHP script:
require 'vendor/almostusable/psr4-autoloader/autoloader.php'; // Now you can use classes from your namespaces use App\Factory\RandomFactory; $randomFactory = new RandomFactory();
Known Issues and Limitations
-
Basic Namespace Handling: The current implementation only checks the first segment of the namespace. This can cause issues with nested namespaces or similar prefixes.
-
Limited Error Handling: The composer.json parsing has minimal error handling.
-
Single Autoloading Standard: Only supports PSR-4, not other standards like PSR-0 or classmap.
Potential Improvements
- Implement longest prefix matching for better namespace handling
- Improve error handling for composer.json loading
- Add support for multiple autoloading standards