Heim  >  Artikel  >  PHP-Framework  >  Singleton-Modus des ThinkPHP-Containers

Singleton-Modus des ThinkPHP-Containers

咔咔
咔咔Original
2020-10-10 11:21:592612Durchsuche

Dieser Artikel konzentriert sich hauptsächlich auf die Implementierung der internen Container und Fassaden des Frameworks als Benchmark

Vorwort

Zuvor habe ich die Quellcode-Analyse des automatischen Ladens von Klassen analysiert und Laden von Konfigurationsdateien. Dieser Artikel ist die dritte Ausgabe und konzentriert sich hauptsächlich auf die Implementierung von Containern und Fassadenklassen sowie das Parsen des Quellcodes. Und lernen Sie einige Wissenspunkte, um diese Funktion zu implementieren.

1. Singleton-Modus.

Da sind zwei Entwurfsmuster, die Sie verstehen müssen, bevor Sie Container und Fassaden lernen: den Singleton-Modus und den Registrierungsbaummodus.

Erklären Sie zunächst kurz das Singleton-Muster.

  • Haben Sie einen Konstruktor und das Attribut ist privat
  • Haben Sie eine statische Mitgliedsvariable, um die Instanz der Klasse zu speichern
  • Haben Sie eine statische Methode, um auf diese Instanz zuzugreifen

Dies ist die implementierte Vergleichen Sie im einfachen Singleton-Modus von Kaka die oben genannten drei Funktionen, um festzustellen, ob sie konsistent sind.

Die statische Variable ist „Instance“. Sie hat eine Struktur und ist privat nur seine Klasse Es wurde einmal instanziiert und viermal aufgerufen

Besuchen Sie diese Methode, um zu sehen

new-class wird nur einmal ausgeführt, was direkt beweist, dass die erstellte Klasse nur einmal instanziiert wird.

Eine Frage, die ich hier vor Kaka hatte, ist, warum der Konstruktor hier private Attribute verwendet. Singleton-Modus des ThinkPHP-Containers

Hattest du diese Frage schon einmal? Kaka wird Sie dazu bringen, die Frage gemeinsam zu beantworten

Der Konstruktor privater Eigenschaften ist in dieser Klasse definiert, um zu verhindern, dass seine Klasse extern instanziiert wird.

Singleton-Modus des ThinkPHP-ContainersWenn diese Klasse extern instanziiert wird, wird der unten gezeigte Fehler gemeldet.

Singleton-Modus des ThinkPHP-ContainersWarum erwähne ich hier also das Singleton-Muster? Dies liegt daran, dass

im nächsten Quellcode des Lerncontainers verwendet wird. In der

-Klasse in der Abbildung unten gibt es beispielsweise eine Instanz zum Abrufen des aktuellen Containers.

Bis jetzt wurde das Singleton-Muster kurz verstanden. Das Verständnis des Singleton-Musters dient auch dazu, den Container besser zu verstehen.

Beharrlichkeit beim Lernen, Beharrlichkeit beim Bloggen und Beharrlichkeit beim Teilen sind die Überzeugungen, an denen Kaka seit seinen Anfängen immer festgehalten hat. Ich hoffe, dass Kakas Artikel im riesigen Internet Ihnen ein wenig helfen können. Ich bin Kaka, bis zum nächsten Mal.

Das obige ist der detaillierte Inhalt vonSingleton-Modus des ThinkPHP-Containers. 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