Maison > Article > développement back-end > Exemples détaillés de deux méthodes d'implémentation de chargement automatique PHP
Il existe deux méthodes d'implémentation pour
php pour charger automatiquement . Les amis dans le besoin peuvent s'y référer.
Il existe deux façons de charger automatiquement PHP.
La première option consiste à utiliser le chargement automatique. Cette fonction est plus simple et plus faible
Mais il y a un problème qui n'a pas été résolu, qui est de déterminer. si le fichier existe avant d'inclure Le problème.
set_include_path('aa' . PATH_SEPARATOR . get_include_path()); function autoload($className) { //如果加这个检测, 因为此文件不在当前目录下,它就会检测不到文件存在, //但include是能成功的 if (file_exists($className . '.php')) { include_once($className . '.php'); } else { exit('no file'); } } $a = new Acls();
La deuxième option utilise spl pour charger automatiquement
spl_autoload_register()
Un exemple simple
set_include_path('aa' . PATH_SEPARATOR . get_include_path()); //function autoload($className) //{ // if (file_exists($className . '.php')) { // include_once($className . '.php'); // } else { // exit('no file'); // } //} spl_autoload_register(); $a = new Acls();spl_autoload_register () appellera automatiquement spl_autoload() en premier pour trouver le programme ".php" avec un nom de fichier en minuscules dans le chemin. L'extension par défaut est ".ini", et vous pouvez également utiliser spl_autoload_extenstions() pour. enregistrez l'extension.
dans Si vous ne la trouvez pas, vous pouvez également la rechercher en
définissant une fonction vous-même, telle que function loader1($class)
{
//Écrivez vous-même du code de chargement
}
function loader2($class)
{
//Quand loader1() est introuvable, je viens le trouver
}
spl_autoload_register('loader1');
spl_autoload_register('loader2');
Vous pouvez faire plus...
Comment le framework MVC implémente-t-il le chargement automatique
Définissez d'abord le chemin
'include' => array( 'application/catalog/controllers', 'application/catalog/models', ),$include = array('application/controllers', 'application/models', 'application/library'); 🎜>set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR, $config['include']));
Après avoir obtenu l'URL, analysez le contrôleur et la méthode
Puis configurez le chargement automatique
.
Le code est le suivant :
class Loader { /** * 自动加载类 * @param $class 类名 */ public static function autoload($class) { $path = ''; $path = str_replace('_', '/', $class) . '.php'; include_once($path); } } /** * sql自动加载 */ spl_autoload_register(array('Loader', 'autoload'));
Le code est le suivant :
Le chargement automatique initial est terminé
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!