Maison  >  Article  >  développement back-end  >  Note 019 Chargement automatique via spl_autoload_register

Note 019 Chargement automatique via spl_autoload_register

黄舟
黄舟original
2016-12-26 10:13:351094parcourir

spl_autoload_register

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_register — Enregistrez la fonction donnée en tant qu'implémentation de __autoload

Syntaxe

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

Explication

Grâce à cette fonction, vous pouvez charger la classe spécifie le mode d'adressage, il n'est donc pas nécessaire d'exiger et d'inclure de grandes quantités. Le système suivra automatiquement les règles spécifiées et se rendra à l'emplacement correspondant pour trouver la classe qui doit être instanciée. Bien que cette méthode soit de niveau relativement bas, s’il existe un cadre, nous n’avons généralement pas besoin de faire ce travail. Mais il est inévitable qu'il y ait encore des moments où j'aurai besoin de l'utiliser. Par exemple, lorsque j'écrivais ce blog, j'avais besoin de jouer moi-même avec le script. Pour le moment, il n'y a aucun moyen de contourner ce problème. L'exemple ci-dessous est un simple programme de chargement automatique utilisé dans mon script.

Exemple

spl_autoload_register(function ($class) {
    $rootPath = realpath(sprintf('%s/..', __DIR__));
    $paths = array(        'src',
    );    foreach ($paths as $path) {        if (is_file(
            $file = $rootPath . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $class
            . '.php'
        )) {            include $file;            break;
        }
    }
});

Notez que les fonctions anonymes ne peuvent être utilisées qu'en PHP 5.3 et supérieur. Si vous constatez qu'elles ne peuvent pas être utilisées, vérifiez votre version PHP. Ici, je spécifie simplement toutes les classes à rechercher dans mon dossier src, et les noms de classes sont exactement les mêmes que les noms de fichiers.

Ce qui précède est le contenu de la note 019 via spl_autoload_register pour réaliser un chargement automatique. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn