Autoload je velmi užitečná funkce PHP 5, sloužící k automatickému načtení tříd (souborů). Autoload je vlastně takové vylepšení require_once (include). Funkce __autoload se zavolá v případě, že požadujete třídu, která prozatím neexistuje.
Následující kód stačí vložit do core.php. Pokud máte rádi pořádek a své class umisťujete dle jejich významu do různých adresářů, je nutné nejprve nastavit include path.
// DS - oddelovac pro adresare
define ('DS', DIRECTORY_SEPARATOR);
// pak najdeme absolutni cestu
define ('ABSPATH', realpath(dirname(__FILE__)).DS);
// nastavime potrebne cesty k vasim class
set_include_path
(
ABSPATH.'libs'.DS.'core'.DS.PATH_SEPARATOR. // libs/core/
ABSPATH.'libs'.DS.'helper'.DS.PATH_SEPARATOR. // libs/helper/
get_include_path()
);
Většinou je dobrým zvykem dodržovat nějakou strukturu pojmenování tříd. V mém případě jsou třídy pojmenované class.nazev.php. Funkce __autoload bude vypadat následovně:
// automaticke nahrani trid umistenych v core nebo helper
function __autoload($class_name)
{
if (!class_exists($class_name, false) ||
!interface_exists($class_name, false))
require_once ('class.'.$class_name.'.php');
}
Tento kód si uložte např. do aload.php, pak už jen stačí napsat
require_once('aload.php');
kdekoliv, kde budete potřebovat pracovat se svými class.