Automatyczne ładowanie klas w PHP

> Dodaj do ulubionych

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();
?>

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”

  1. Dziękuję za użyteczny, prosty do zrozumienia artykuł.

Mo┼╝liwo┼Ť─ç komentowania zosta┼éa wy┼é─ůczona.