ფუნქცია spl_autoload_register

ფუნქცია spl_autoload_register არეგისტრირებს მოცემულ ფუნქციას, როგორც კლასების ავტომატური ჩატვირთვის მეთოდის იმპლემენტაციას. როდესაც PHP-ს შეხვდება განუსაზღვრელი კლასი, ის თანმიმდევრულად იძახებს ყველა დარეგისტრირებულ ავტოდატვირთვის ფუნქციას, გადასცემს მათ კლასის სახელს. პირველი პარამეტრი - callback-ფუნქცია ავტოდატვირთვისთვის, მეორე პარამეტრი (არასავალდებულო) - გადააგდოს თუ არა გამონაკლისი შეცდომის დროს, მესამე პარამეტრი (არასავალდებულო) - დაემატოს თუ არა ფუნქცია რიგის დასაწყისში.

სინტაქსი

phpspl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);

მაგალითი

ავტოდატვირთვის ფუნქციის მარტივი რეგისტრაცია:

php<?php
  function my_autoloader($class) {
    include 'classes/' . $class . '.php';
  }
  
  spl_autoload_register('my_autoloader');
  
  // ახლა შესაძლებელია ობიექტების შექმნა ცხადი include-ის გარეშე
  $obj = new MyClass();
?>

მაგალითი

ანონიმური ფუნქციის გამოყენება ავტოდატვირთვისთვის:

php<?php
  spl_autoload_register(function ($class) {
    include 'lib/' . str_replace('\\', '/', $class) . '.php';
  });
  
  $obj = new Some\Namespace\MyClass();
?>

მაგალითი

რამდენიმე ავტოდატვირთვის ფუნქციის რეგისტრაცია:

php<?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,
    რომელიც ამოწმებს კლასს