In thinkphp wird die Importmethode verwendet, um die Kapselung des Klassenbibliotheksimports zu implementieren. Sie kann Importunterstützung für Projektklassenbibliotheken, erweiterte Klassenbibliotheken und Klassenbibliotheken von Drittanbietern bereitstellen. Die Syntax lautet „import('Klassenbibliotheksname‘“. , 'Startpfad', 'Klassenbibliothekssuffix')"; Diese Methode verfügt über eine Alias-Anbietermethode, die speziell zum Importieren von Klassenbibliotheken von Drittanbietern verwendet wird.
Die Betriebsumgebung dieses Artikels: Windows 10-System, ThinkPHP Version 3.2, Dell G3-Computer.
Die Importmethode ist die Kapselungsimplementierung des ThinkPHP-Frameworks für den Klassenbibliotheksimport, insbesondere für die Importunterstützung von Projektklassenbibliotheken, Erweiterungsklassenbibliotheken und Klassenbibliotheken von Drittanbietern Versionen der Importmethode können mit der Importmethode von Java verwendet werden, die auch Verzeichnisse und Platzhalterimporte importiert. Später wurde sie aufgrund von Leistungsproblemen in nachfolgenden Versionsaktualisierungen kontinuierlich verbessert und vereinfacht, sodass die aktuelle Verwendung relativ einfach und klar ist. Aufrufformat:
import('类库名', '起始路径', '类库后缀')
Die imprt-Methode verfügt über eine Alias-Anbietermethode, die speziell zum Importieren von Klassenbibliotheken von Drittanbietern verwendet wird. Der Unterschied besteht darin, dass der Startpfad und der Standardwert des Klassenbibliothekssuffixes unterschiedlich sind.
Lassen Sie uns die spezifische Verwendung analysieren:
1. Importieren Sie die Systembasisklassenbibliothek.
Die Systembasisklassenbibliothek bezieht sich tatsächlich auf das Think-Klassenbibliothekspaket, und das Verzeichnis, in dem es sich befindet, bezieht sich auf das Kernverzeichnis von Lib Das Framework. Die Importmethode kann zum Importieren der Systembasisklassenbibliothek verwendet werden, zum Beispiel:
import('Think.Util.Array');
bedeutet, dass die Klassenbibliotheksdatei Lib/Util/Array.class.php in das Systemverzeichnis importiert wird, was unserer Verwendung entspricht
require THINK_PATH.'Lib/Util/Array.class.php';
zur Unterstützung mehrstufiger Verzeichnisse, zum Beispiel:
import('Think.Util.U1.ClassA'); import('Think.Util.U1.A2.ClassB');
Nach dem Importieren der Klassenbibliothek über die Importmethode können Sie die Klassenbibliothek instanziieren.
2. Importieren Sie die Erweiterungsklassenbibliothek
Die Erweiterungsklassenbibliothek befindet sich im Verzeichnis Extend/Library. Derzeit werden nur ORG und die Erweiterungsklassenbibliothek unterstützt Com-Pakete.
import('ORG.Util.Image'); import('Com.Sina.OAuth');
importiert die Klassenbibliothek eines Drittanbieters in das Erweiterungsverzeichnis (jeweils die Klassenbibliotheksdateien Extend/Library/ORG/Util/Image.class.php und Extend/Library/Com/Sina/OAuth.class.php), drittens -party Klassenbibliothekspakete können nur ORG und Com unterstützen. Die folgenden Unterverzeichnisse können nach Belieben hinzugefügt werden.
3. Importieren Sie die Projektanwendungsklassenbibliothek
Wenn der Startimportpfad nicht angegeben ist, werden andere Klassenbibliothekspakete als Think, ORG und Com für den Import der Projektanwendungsklassenbibliothek berücksichtigt, zum Beispiel:
import("MyApp.Action.UserAction"); import("MyApp.Model.InfoModel");
bedeutet Importieren der UserAction- und InfoModel-Klassenbibliotheksdateien des MyApp-Projekts. Da wir normalerweise die Klassenbibliothek unter dem aktuellen Projekt importieren, kann dies wie folgt abgekürzt werden:
import("@.Action.UserAction"); import("@.Model.InfoModel");
@-Symbol bedeutet Importieren der Klassenbibliothek unter dem aktuellen Projekt Funktioniert auch bis zu einem gewissen Grad. Es erleichtert die Code-Transplantation der Projektklassenbibliothek. Wenn sich der Projektname ändert oder in ein anderes Projekt verschoben wird, muss die Schreibmethode nicht geändert werden.
4. Nicht standardmäßige Klassenbibliotheksdateien importieren
Die hier erwähnten nicht standardmäßigen Klassenbibliotheksdateien beziehen sich hauptsächlich auf Klassenbibliotheksdateien, die sich an speziellen Speicherorten befinden oder das Suffix „non-.class.php“ haben. Der Import von Basisklassenbibliotheken, Erweiterungsklassenbibliotheken und Projektklassenbibliotheken basiert alle auf dem Verzeichnis der Framework-Spezifikation. Wenn wir die Datei MyClass.php im Common-Verzeichnis des Projekts importieren müssen, können wir Folgendes verwenden:
import('Common.MyClass',APP_PATH,'.php');
oder
import('MyClass',APP_PATH.'Common','.php');
oder zum Importieren der RBAC-Klassenbibliothek unter das aktuelle Verzeichnis
import("RBAC.AccessDecisionManager",dirname(__FILE__),".php");
Es gibt noch einen weiteren Sonderfall, nämlich die Besonderheit der Benennung der Klassenbibliothek. Gemäß den Regeln des Systems kann die Importmethode keine Klassenbibliotheksdateien mit Punkten importieren, da die Punkte direkt in Schrägstriche umgewandelt werden. Wenn wir beispielsweise eine Datei mit dem Namen User.Info.class.php definieren, verwenden Sie:
If Beim Laden inimport("ORG.User.Info");
tritt ein Fehler auf, der dazu führt, dass die geladene Datei nicht die Datei ORG/User.Info.class.php, sondern die Datei ORG/User/Info.class.php ist. In diesem Fall können wir Folgendes verwenden:
import("ORG.User#Info");
zum Importieren.
5. Klassenbibliotheken von Drittanbietern importieren
Die Basisklassenbibliotheken von ThinkPHP haben alle das Suffix .class.php. Natürlich kann dies auch über die Importparameter gesteuert werden Um Klassenbibliotheken aus anderen Frameworks und Systemen einzuführen, bietet das System auch einen Alias-Anbieter für die Importmethode, der speziell zum Importieren von Klassenbibliotheken von Drittanbietern verwendet wird. Das Standardstartverzeichnis und das Klassendateisuffix sind unterschiedlich. Die Klassenbibliothek eines Drittanbieters befindet sich im Vendor-Verzeichnis unter dem Systemerweiterungsverzeichnis. Zu diesem Zeitpunkt lautet der Pfad der Dir-Datei VendorZendFilterDir.php Als zu importierende Vendor-Methode müssen wir nur Folgendes verwenden:
Vendor('Zend.Filter.Dir');
Sie können die Dir-Klassenbibliothek importieren.
Vendor-Methode kann auch die gleichen grundlegenden Pfad- und Dateinamensuffixparameter wie die Importmethode unterstützen, zum Beispiel:
Vendor('Zend.Filter.Dir',dirname(__FILE__),'.class.php');
6 Alias-Import
Zusätzlich zur Namespace-Importmethode kann auch die Importmethode Unterstützen Sie den Alias-Import. Um den Alias-Import zu verwenden, müssen Sie zunächst alias.php im Projektkonfigurationsverzeichnis hinzufügen, um den Alias der Klassenbibliothek zu definieren, der im Projekt verwendet werden muss, zum Beispiel:
return array( 'rbac' =>LIB_PATH.'Common/Rbac.class.php', 'page' =>LIB_PATH.'Common/Page.class.php', );
Dann Sie können es jetzt direkt verwenden:
import("rbac"); import("page");
Import Für Rbac- und Page-Klassen verbietet die Alias-Importmethode die Verwendung des zweiten und dritten Parameters der Importmethode. Die Alias-Importmethode ist effizienter als die Namespace-Importmethode ist, dass die relevanten Aliase im Voraus definiert werden müssen.
Sie können Aliase für einige erforderliche Klassenbibliotheken definieren, damit diese schnell automatisch geladen werden können, ohne einen automatischen Ladepfad zu definieren.
Unter normalen Umständen ist es aufgrund der im Framework verwendeten automatischen Lademethode in den meisten Fällen nicht erforderlich, dass Benutzer Klassenbibliotheksdateien manuell importieren. Dies wird normalerweise zum Importieren von Erweiterungsklassenbibliotheken und Klassenbibliotheken von Drittanbietern verwendet. Darüber hinaus kann durch die Definition der Alias-Definition und des automatischen Ladepfads auch die Notwendigkeit verringert werden, dass Benutzer Klassenbibliotheken manuell importieren müssen.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von Import in thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!