ფუნქცია 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,
რომელიც ამოწმებს კლასს