Heim > PHP-Framework > Denken Sie an PHP > Analyse von Bibliothekserweiterungsvorgängen wie der Thinkphp-Framework-Erweiterung

Analyse von Bibliothekserweiterungsvorgängen wie der Thinkphp-Framework-Erweiterung

coldplay.xixi
Freigeben: 2020-06-09 12:02:17
nach vorne
2902 Leute haben es durchsucht

Analyse von Bibliothekserweiterungsvorgängen wie der Thinkphp-Framework-Erweiterung

Detaillierte Erläuterung von Bibliothekserweiterungsvorgängen wie der Thinkphp-Framework-Erweiterung

Dieser Artikel hauptsächlich Einführung in die Thinkphp-Framework-Erweiterung und andere Vorgänge zur Erweiterung der Klassenbibliothek und Analyse der relevanten Prinzipien, Implementierungsmethoden und Betriebsvorkehrungen der Thinkphp-Klassenbibliothekserweiterung in Form von Beispielen. Freunde in Not können sich auf die Beispiele in diesem Artikel beziehen

Beschreibt Bibliothekserweiterungsvorgänge wie die Thinkphp-Framework-Erweiterung. Geben Sie es wie folgt als Referenz für alle frei:

Bibliotheksklassenerweiterung

Die Klassenbibliothek von ThinkPHP umfasst hauptsächlich öffentliche Klassenbibliotheken und Anwendungsklassenbibliotheken, die alle auf definierten Namespaces basieren und erweitert. Solange es gemäß der Spezifikation definiert ist, kann ein automatisches Laden erreicht werden.

Öffentliche Bibliotheksklassen

Öffentliche Klassenbibliotheken beziehen sich normalerweise auf die Klassenbibliotheken im ThinkPHP/Library-Verzeichnis, zum Beispiel:

Think Verzeichnis: Systemkernklassenbibliothek
Org-Verzeichnis: Öffentliche Klassenbibliothek eines Drittanbieters

Die Klassenbibliotheken in diesen Verzeichnissen können automatisch geladen werden. Sie müssen nur die entsprechende Klassenbibliothek in das Verzeichnis einfügen , und fügen Sie dann die Namespace-Definition hinzu oder ändern Sie sie. Sie können eine Image.class.php-Datei im Verzeichnis Org/Util/ hinzufügen und dann den Namespace wie folgt hinzufügen:

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

Auf diese Weise können Sie die Image-Klasse wie folgt direkt instanziieren:

$image = new \Org\Util\Image;
Nach dem Login kopieren

Zusätzlich zu diesen Verzeichnissen können Sie Ihr eigenes Klassenbibliotheksverzeichnis unter dem ThinkPHP/Library-Verzeichnis hinzufügen. Beispielsweise fügen wir ein Com-Verzeichnis für die Erweiterung der Unternehmensklassenbibliothek hinzu:

ComSinaApp-Klasse ( befindet sich in Com/Sina/App.class.php)

namespace Com\Sina;
class App {
}
Nach dem Login kopieren

ComSinaRank-Klasse (befindet sich in Com/Sina/Rank.class.php)

namespace Com\Sina;
class Rank {
}
Nach dem Login kopieren

Zusätzlich zum Bibliotheksverzeichnis des Systems enthält die Öffentliche Klassenbibliothek ist auch Andere Namespaces können angepasst werden. Wir müssen lediglich einen neuen Namespace registrieren und die folgenden Einstellungsparameter in der Anwendungs- oder Modulkonfigurationsdatei hinzufügen:

'AUTOLOAD_NAMESPACE' => array(
  'Lib'   => APP_PATH.'Lib',
)
Nach dem Login kopieren

Wir haben ein Lib-Verzeichnis unter dem Anwendungsverzeichnis erstellt Platzieren Sie die öffentliche Lib-Erweiterung. Wenn wir die beiden oben genannten Klassenbibliotheken im LibSina-Verzeichnis ablegen möchten, müssen wir sie nur an Folgendes anpassen:

LibSinaApp-Klasse (befindet sich in Lib/Sina/App.class.php)

namespace Lib\Sina;
class App {
}
Nach dem Login kopieren

LibSinaRank-Klasse (befindet sich in Lib/Sina/Rank.class.php)

namespace Lib\Sina;
class Rank {
}
Nach dem Login kopieren

Wenn Ihre Klassenbibliothek keinen Namespace verwendet, müssen Sie die Importmethode verwenden, um die Klasse zu laden Zuerst die Bibliotheksdatei erstellen und sie dann instanziieren, zum Beispiel: Wir haben eine Counter-Klasse definiert (in Com/Sina/Util/Counter.class.php):

class Counter {
}
Nach dem Login kopieren

Wenn Sie sie verwenden, müssen Sie sie aufrufen auf folgende Weise:

import('Com.Sina.Util.Couter');
$object = new \Counter();
Nach dem Login kopieren

Anwendungsklassenbibliothek

Die Anwendungsklassenbibliothek ist normalerweise eine Klassenbibliothek im Anwendungs- oder Modulverzeichnis. Der Namespace der Anwendungsklassenbibliothek ist im Allgemeinen der Name des Moduls als Root-Namespace, zum Beispiel: HomeModelUserModel-Klasse (befindet sich in ApplicationHomeModel)

namespace HomeModel;

use ThinkModel;

class UserModel erweitert Model{

}

CommonUtilPay-Klasse (in ApplicationCommonUtil)

namespace Common\Util;
class Pay {
}
Nach dem Login kopieren

AdminApiUserApi-Klasse (in ApplicationAdminApi)

namespace Admin\Api;
use Think\Model;
class UserApi extends Model{
}
Nach dem Login kopieren

Merken Sie sich ein Prinzip, ob der Namespace-Pfad dem tatsächlichen entspricht Dateipfad, automatisches Laden kann während der direkten Instanziierung erreicht werden.

Empfohlenes Tutorial: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonAnalyse von Bibliothekserweiterungsvorgängen wie der Thinkphp-Framework-Erweiterung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
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