Skip to content

Instantly share code, notes, and snippets.

@adriengibrat
Last active January 22, 2024 14:45
Show Gist options
  • Star 31 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save adriengibrat/4761717 to your computer and use it in GitHub Desktop.
Save adriengibrat/4761717 to your computer and use it in GitHub Desktop.
Extreme minification of shortest possible PSR-0 compliant autoloader, 5 lines !
<?php
//set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__); // optional
spl_autoload_register(function ($class) {
$file = preg_replace('#\\\|_(?!.+\\\)#','/', $class) . '.php';
if (stream_resolve_include_path($file))
require $file;
});
@adriengibrat
Copy link
Author

adriengibrat commented Nov 15, 2013

@include was lame... Now i check if the file can be included, then require it ;)

@strangecode
Copy link

Why not use require_once? Or does spl_autoload_register automatically prevent loading files multiple times?

@adriengibrat
Copy link
Author

adriengibrat commented Feb 8, 2014

Yes, autoloading happens only if the class definition is not yet included. But may be require_once is safer ;)

@victorknust
Copy link

This regex is reliable?
Some tests indicate an error in this part "(?!".

@makryl
Copy link

makryl commented Sep 15, 2014

For the perfect, please add braces to if statement :))
"The body of each structure MUST be enclosed by braces." (c) PSR-2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment