что такое автозагрузка в PHP?
Это поможет вам в использовании автозагрузки. http://ditio.net/2008/11/13/php-autoload-best-practices/
Вот официальная документация: http://php.net/autoload
Короче говоря, он просто позволяет вам определять пути поиска для классов, поэтому вам не потребуется включать файлы, содержащие их вручную.
Я предлагаю вам разработать привычку искать php.net, просто добавив имена функций или очевидные ключевые слова в адрес. Вот как я нашел php.net/autoload. Это очень удобно.
Что такое автозагрузка?
Каждый раз, когда вы хотите использовать новый класс в своем проекте PHP, сначала вам нужно включить этот класс (используя include или require language construct, это право, это не функции). Однако, если у вас определена функция __autoload, включение будет обрабатываться самостоятельно.
include "classes/class.Foo.php"; $foo = new Foo; $foo->start(); $foo->stop();
Пример базовой автозагрузки
function __autoload($class_name) { require_once $DOCUMENT_ROOT.“classes/class.”.$class_name.“.php”; } $foo = new Foo; $foo->start(); $foo->stop();
Официальный сайт PHP
Другие
PHP 5 представил волшебную функцию __autoload (), которая автоматически вызывается, когда ваш код ссылается на класс или интерфейс, который еще не загружен.
Основным недостатком функции __autoload()
является то, что вы можете предоставить только один автозагрузчик. В PHP 5.1.2 представлен spl_autoload()
который позволяет вам регистрировать несколько функций автозагрузчика, а в будущем __autoload()
будет устаревать.
Введение spl_autoload_register()
предоставило программистам возможность создавать цепочку автозагрузки, ряд функций, которые можно вызвать, чтобы попытаться загрузить класс или интерфейс. Например:
<?php function autoloadModel($className) { $filename = "models/" . $className . ".php"; if (is_readable($filename)) { require $filename; } } function autoloadController($className) { $filename = "controllers/" . $className . ".php"; if (is_readable($filename)) { require $filename; } } spl_autoload_register("autoloadModel"); spl_autoload_register("autoloadController");
an __autoload() //function which is automatically called in case you are trying to use //a class/interface which hasn't been defined yet. function __autoload($class_name) { include $class_name . '.php'; }
Автозагрузчик – это функция, которая загружает весь объект при запуске. и также называется названием класса.