Συνάρτηση spl_autoload_register
Η συνάρτηση spl_autoload_register καταχωρεί μια δεδομένη συνάρτηση ως υλοποίηση της μεθόδου αυτόματης φόρτωσης κλάσεων. Όταν η PHP συναντήσει μια μη ορισμένη κλάση, καλεί διαδοχικά όλες τις καταχωρημένες συναρτήσεις αυτόματης φόρτωσης, περνώντας τους το όνομα της κλάσης. Η πρώτη παράμετρος είναι η callback-συνάρτηση για την αυτόματη φόρτωση, η δεύτερη παράμετρος (προαιρετική) είναι αν να εκτινάξει εξαίρεση σε περίπτωση σφάλματος, η τρίτη παράμετρος (προαιρετική) είναι αν να προσθέσει τη συνάρτηση στην αρχή της ουράς.
Σύνταξη
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Παράδειγμα
Απλή καταχώρηση συνάρτησης αυτόματης φόρτωσης:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Τώρα μπορούμε να δημιουργήσουμε αντικείμενα χωρίς ρητό include
$obj = new MyClass();
?>
Παράδειγμα
Χρήση ανώνυμης συνάρτησης για αυτόματη φόρτωση:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Παράδειγμα
Καταχώρηση πολλαπλών συναρτήσεων αυτόματης φόρτωσης:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Προσθέτουμε στην αρχή της ουράς
// Η PHP θα καλεί τις συναρτήσεις με τη σειρά: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Δείτε επίσης
-
τη συνάρτηση spl_autoload_functions,
που επιστρέφει τους αυτόματους φτωτές -
τη συνάρτηση spl_autoload_unregister,
που αφαιρεί έναν αυτόματο φτωτή -
τη συνάρτηση class_exists,
που ελέγχει μια κλάση