Automatyczne ładowanie klas w PHP

Funkcję automatycznego ładowania (PHP autoloader) należy zarejestrować za pomocą funkcji spl_autoload_register().

W PHP jest kilka sposobów na automatyczne ładowanie plików zawierających klasy, które jeszcze nie zostały załadowane. Kiedyś w tym celu używało się magicznej funkcji globalnej o nazwie __autoload(). Niestety tylko jedna taka funkcja na raz może być zdefiniowana, więc jeśli dołączymy do skryptu bibliotekę, w której również znajduje się jej definicja, powstaje konflikt.

Dlatego najlepszym sposobem jest nadanie swojej funkcji automatycznego ładowania jakąś niepowtarzalną nazwę, a następnie zarejestrowanie jej za pomocą funkcji spl_autoload_register(). W ten sposób można posługiwać się wieloma definicjami funkcji __autoload() bez obawy o konflikty.

Przykład użycia funkcji spl_autoload_register()

<?php
// najpierw definiujemy w PHP autoloader
function MyAutoload($className){
    include_once($className . '.php');
}
 
// następnie rejestrujemy ją w PHP.
spl_autoload_register('MyAutoload');
 
// wypróbowujemy swoją funkcję
// Jako że nie dołączyliśmy do skryptu pliku z klasą MyClass, nasz autloader dołączy automatycznie plik MyClass.php.
// Na potrzeby tego przykładu przyjmujemy, że definicja klasy MyClass znajduje się w pliku MyClass.php.
$var = new MyClass();
?>

Podobał Ci się ten artykuł?

Oceń go!

Średnia 0 / 5. Liczba głosów: 0

Jeszcze nikt nie głosował. Wyprzedź innych i zagłosuj.

Skoro spodobał Ci się ten artykuł...

Poleć go znajomym!

Ojej :( Powiedz nam, co powinniśmy poprawić!

Jajko z dzwonkiem
Podoba Ci się ta strona?

Pomóż nam się rozwijać, wykupując płatne konto. Dzięki temu będziemy mogli tworzyć dla Ciebie jeszcze więcej ciekawych treści, a Ty pozbędziesz się reklam.

Autor: Alex Cabal

Źródło: http://phpbestpractices.org/

Tłumaczenie: Łukasz Piwko

Treść tej strony jest dostępna na zasadach licencji CC BY-SA 3.0

1 komentarz do “Automatyczne ładowanie klas w PHP”

Możliwość komentowania została wyłączona.