Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Beispiele für zwei Implementierungsmethoden für das automatische Laden von PHP

Detaillierte Beispiele für zwei Implementierungsmethoden für das automatische Laden von PHP

伊谢尔伦
伊谢尔伦Original
2017-07-01 09:21:242762Durchsuche

Es gibt zwei Implementierungsmethoden für

php, um automatisch zu laden. Freunde in Not können darauf verweisen.

Es gibt zwei Möglichkeiten, PHP automatisch zu laden.
Die erste Option ist die Verwendung von Autoload.
Ein Problem wurde jedoch nicht gelöst ob die Datei bereits vorhanden ist,

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();

Die zweite Option verwendet spl, um dies im Detail zu besprechen
spl_autoload_register()
Ein einfaches Beispiel 🎜>

spl_autoload_register () ruft automatisch zuerst spl_autoload() auf, um das Programm „.php“ mit einem Dateinamen in Kleinbuchstaben im Pfad zu finden. Die Standarderweiterung ist „.ini“, und Sie können auch spl_autoload_extenstions() verwenden Registrieren Sie die Erweiterung.
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();
in Wenn Sie sie nicht finden können, können Sie auch danach suchen, indem Sie

selbst eine Funktion
definieren, z. B. Funktionslader1($class) {
//Schreiben Sie selbst einen Ladecode
}
Funktion Loader2($class)
{
//Wenn Loader1() nicht gefunden werden kann, suche ich ihn
}
spl_autoload_register('loader1');
spl_autoload_register('loader2');
Sie können mehr tun...
Wie implementiert das MVC-Framework das automatische Laden?
'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']));
Nachdem Sie die URL erhalten haben, analysieren Sie den Controller und die Methode
Dann richten Sie das automatische Laden ein


Der Code lautet wie folgt:

Route, instanziiere den Controller, rufe die Methode auf und was du schreibst, wird ausgeführt

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'));

Der Code lautet wie folgt:

Das erste automatische Laden ist abgeschlossen

Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele für zwei Implementierungsmethoden für das automatische Laden von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn