Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung des Namespace in thinkphp

Verwendung des Namespace in thinkphp

不言
不言Original
2018-06-09 09:32:181525Durchsuche

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 {
}

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

$class = new \Org\Util\File();

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

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 Modulnamen benannt ist, zum Beispiel:

namespace Home\Model;
class UserModel extends \Think\Model
{
}

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

namespace Admin\Event;
class UserEvent {
}

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,

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 {
}

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

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!

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