Maison  >  Article  >  développement back-end  >  Exemples détaillés de deux méthodes d'implémentation de chargement automatique PHP

Exemples détaillés de deux méthodes d'implémentation de chargement automatique PHP

伊谢尔伦
伊谢尔伦original
2017-07-01 09:21:242706parcourir

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(&#39;aa&#39; . PATH_SEPARATOR . get_include_path()); 
//function autoload($className) 
//{ 
// if (file_exists($className . &#39;.php&#39;)) { 
// include_once($className . &#39;.php&#39;); 
// } else { 
// exit(&#39;no file&#39;); 
// } 
//} 
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 :

Route, instanciez le contrôleur, appelez la méthode et ce que vous écrivez commencera à s'exécuter
class Loader 
{ 
/** 
* 
自动加载类
 
* @param $class 类名 
*/ 
public static function autoload($class) 
{ 
$path = &#39;&#39;; 
$path = str_replace(&#39;_&#39;, &#39;/&#39;, $class) . &#39;.php&#39;; 
include_once($path); 
} 
} 
/** 
* sql自动加载 
*/ 
spl_autoload_register(array(&#39;Loader&#39;, &#39;autoload&#39;));


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!

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