Kada pišete klase, obično svaku klasu smeštate u poseban fajl, a kada želite da instancirate sve te klase, onda morate svaki fajl da učitate posebno. U PHP-u to više nije neophodno zato što od verzije 5 možete da definišete __autoload funkciju koja će automatski biti pozvana svaki put kada pokušate da instancirate neku klasu koja do tad nije bila definisana.
Primer:
<?phpfunction __autoload($class){$filename = strtolower($class) . '.php';$file = "include/$filename";include $file;}$c1 = new Class1();$c2 = new Class2();?>
U primeru se podrazumeva da klase čuvate u fajlovima koji imaju isti naziv kao i naziv klasa ali __autoload funkciju možete prilagoditi vašem načinu imenovanja datoteka.
spl_autoload je došao sa PHP verzijom 5.1.2 i dozvoljava vam da definišete više autoload funkcija za učitavanje klasa, biblioteka, interfejsa itd.
Primer:
<?phpfunction classLoader($class){$filename = strtolower($class) . '.php';$file = "include/$filename";if(!file_exists($file)){return false;}include $file;}spl_autoload_register('classLoader');spl_autoload_register('libLoader');$c1 = new Class1();$c2 = new Class2();?>
Više o ovome na:
http://www.codeforest.net/autoload-your-classes-in-php
http://www.phpro.org/tutorials/SPL-Autoload.html
http://php.net/manual/en/function.spl-autoload.php
Нема коментара:
Постави коментар