Verwendung des Namespace in thinkphp

不言
Freigeben: 2023-03-31 06:44:01
Original
1562 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Verwendung des ThinkPHP-Namespace vorgestellt und die Funktionen und spezifischen Verwendungstechniken des ThinkPHP-Namespace im Detail anhand von Beispielen analysiert.

In diesem Artikel wird die Verwendung des ThinkPHP-Namespace erläutert mit Beispielen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

In der neuen Version (3.2) wird die Namespace-Methode zum Definieren und Laden von Klassenbibliotheksdateien verwendet, wodurch das Konfliktproblem zwischen mehreren Modulen und gelöst wird erreicht einen effizienteren automatischen Lademechanismus.

Sie müssen den Namespace definieren, in dem sich die Klassenbibliothek befindet. Der Pfad des Namespace stimmt mit dem Verzeichnis der Klassenbibliotheksdatei überein, damit die Klasse automatisch geladen werden kann ist definiert als

namespace Org\Util;
class File {
}
Nach dem Login kopieren

Der Pfad ist ThinkPHP/Library/Org/Util/File.class.php. Wir instanziieren diese Klasse wie folgt:

$class = new \Org\Util\File();
Nach dem Login kopieren

Das System lädt automatisch die obige Datei. Daher ist es nicht erforderlich, es im Instanziierungs-Namespace zu definieren. Die Klassenbibliotheksdatei wurde zuvor importiert.

Der Root-Namespace ist ein sehr wichtiges Konzept. Org ist ein Root-Namespace, und das entsprechende anfängliche Namespace-Verzeichnis ist das Klassenbibliotheksverzeichnis ThinkPHP/Liberary des Systems, das auf der unteren Ebene liegt Unterverzeichnisse werden automatisch als Root-Namespaces erkannt und diese Namespaces können ohne Registrierung verwendet werden.

Wir fügen ein My-Root-Namespace-Verzeichnis unter dem Bibliotheksverzeichnis hinzu und definieren dann eine Testklasse wie folgt:

namespace My;
class Test
{
   public function sayHello()
  {
    echo 'hello';
  }
}
Nach dem Login kopieren

Speichern Sie die Testklasse in ThinkPHP/Liberary/My/Test.class.php , können wir den Namensraum der Klassenbibliothek direkt instanziieren und aufrufen, wenn das Modul

$Test = new \My\Test();
$Test->sayHello();
Nach dem Login kopieren

nach dem Modulnamen benannt ist, zum Beispiel:

namespace Home\Model;
class UserModel extends \Think\Model
{
}
Nach dem Login kopieren

, dessen Klassendatei sich in Application/Home/Model/ befindet. UserModel.class.php

namespace Admin\Event;
class UserEvent {
}
Nach dem Login kopieren

Die Klassendatei befindet sich in Application/Admin/Event/UserEvent.class.php

Version 3.2.1 oder höher ermöglicht die Einstellung, keinen Namespace für die Anwendungsklasse zu verwenden Bibliotheken in der Konfigurationsdatei Die Einstellungen lauten wie folgt:

'APP_USE_NAMESPACE'    =>    false,
Nach dem Login kopieren

Auf diese Weise muss die Anwendungsklassenbibliothek die Namespace-Definition nicht mehr verwenden, Sie müssen jedoch weiterhin den Namespace verwenden, wenn Sie den Kern erben und aufrufen Klassenbibliothek. Beispielsweise wird die folgende Anwendungsklassenbibliothek nicht geschrieben Dann Namespace AdminModel;

class UserModel extends \Think\Model {
}
Nach dem Login kopieren

Besonderer Hinweis: Wenn Sie die integrierte Klassenbibliothek von PHP oder eine Klasse eines Drittanbieters instanziieren müssen, die nicht mit definiert ist Um einen Namespace in Version 3.2 zu erstellen, müssen Sie die folgende Methode verwenden:

$class =  new \stdClass();
$sxml =  new \SimpleXmlElement($xmlstr);
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist die chinesische PHP-Website!

Verwandte Empfehlungen:

Überblick über die Gesamtarchitektur des thinkPHP5.0-Frameworks [Anwendungen, Module, MVC, Treiber, Verhalten, Namespaces usw.]

So verwenden Sie das HTML-Vorlagen-Tag von thinkPHP

Das obige ist der detaillierte Inhalt vonVerwendung des Namespace in thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage