Voi chiedete estremamente leggero, cerchiamo di fare in modo;)
Timothy Boronczyk ha scritto un bel autoloader SPL minima: http://zaemis.blogspot.fr/2012/05/writing-minimal-psr-0-autoloader.html
ho condensato il codice come questo:
function autoload1($class) {
preg_match('/^(.+)?([^\\\\]+)$/U', ltrim($class, '\\'), $match));
require str_replace('\\', '/', $match[ 1 ])
. str_replace([ '\\', '_' ], '/', $match[ 2 ])
. '.php';
}
confrontare Poi (versioni minified di questo) [autoload3] con short @Alix Axel code [autoload4]:
function autoload3($c){preg_match('/^(.+)?([^\\\\]+)$/U',ltrim($c,'\\'),$m);require str_replace('\\','/',$m[1]).str_replace(['\\','_'],'/',$m[2]).'.php';}
function autoload4($c){require (($n=strrpos($c=ltrim($c,'\\'),'\\'))!==false?str_replace('\\','/',substr($c,0,++$n)):null).str_replace('_','/',substr($c,$n)).'.php';}
autoload3 è il più breve!
Usiamo stabile & estremamente leggero (175b!) File autoloader:
<?php spl_autoload_register(function ($c){preg_match('/^(.+)?([^\\\\]+)$/U',ltrim($c,'\\'),$m);require str_replace('\\','/',$m[1]).str_replace(['\\','_'],'/',$m[2]).'.php';});
Forse sono pazzo, ma hai chiesto estremo, no?
EDIT: Grazie a Alix Axel, ho abbreviare il codice (! Solo 100b) e utilizzati comprendono, invece di richiedere nel caso in cui si dispone di diverse strategie caricamento automatico per le vecchie librerie (e poi vari caricatore automatico a caricamento automatico pila spl. ..).
<?php spl_autoload_register(function($c){@include preg_replace('#\\\|_(?!.+\\\)#','/',$c).'.php';});
Se vuoi per renderlo più breve/meglio, si prega di utilizzare questo gist.
+1, non l'ho provato ma penso che la tua versione potrebbe essere ancora più breve se usi 'preg_replace()' invece di 'preg_match()' + 'str_replace()'. –
Non sono del tutto sicuro che 'preg_match() 'è più veloce di altre opzioni PHP equivalenti. – TCB13