


Analyse von Yii-Framework-Komponenten und Ereignisverhaltensmanagement
Dieser Artikel stellt hauptsächlich die Yii-Framework-Komponenten und das Ereignisverhaltensmanagement vor und bietet eine detaillierte Analyse der Prinzipien und Nutzungstechniken des Yii-Framework-Komponentenmanagements und des Verhaltensmanagements. Freunde in Not können darauf verweisen
Dieser Artikel Beschreibt die Beispiele der Yii Framework-Komponenten- und Ereignisverhaltensverwaltung. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Yii ist ein komponentenbasiertes Hochleistungs-PHP-Framework für die Entwicklung umfangreicher Webanwendungen. CComponent ist fast die Basisklasse aller Klassen. Ihre Methoden und Eigenschaften sind wie folgt: Die private Variable $_e speichert Ereignisse (manchmal auch Hook genannt) und das Array $_m speichert Verhaltensweisen (Verhalten).
Komponentenverwaltung
YII ist ein reines Oop-Framework in vielen Klassen, CComponent Die magischen Methoden __get() und __set() werden in PHP verwendet, um auf Eigenschaften zuzugreifen und diese festzulegen, aber die Funktionen dieser Methoden gehen weit darüber hinaus. Im Folgenden wird __get() verwendet, um
public function __get($name) { $getter='get'.$name; if(method_exists($this,$getter)) return $this->$getter(); else if(strncasecmp($name,'on',2)===0 && method_exists($this,$name)) { // duplicating getEventHandlers() here for performance $name=strtolower($name); if(!isset($this->_e[$name])) $this->_e[$name]=new CList; return $this->_e[$name]; } else if(isset($this->_m[$name])) return $this->_m[$name]; else if(is_array($this->_m)) { foreach($this->_m as $object) { if($object->getEnabled() && (property_exists($object,$name) || $object->canGetProperty($name))) return $object->$name; } } throw new CException(Yii::t('yii','Property "{class}.{property}" is not defined.', array('{class}'=>get_class($this), '{property}'=>$name))); }
Wenn CComponent oder seine Unterklassenobjektinstanz $obj->name verwendet wird, die __get($name)-Methode :
1. Bestimmen Sie zunächst, ob es eine getName()-Methode in der Instanz gibt. Wenn ja, handelt es sich um Ereignisse, die in CComponent-Unterklassen reserviert sind. Sie werden verwendet, um an Ereignissen festzuhalten Name), um festzustellen, ob der Name in einer Instanz der Klasse vorhanden ist. Andernfalls führen Sie Schritt 3 aus.
3 Wenn der Name im Verhaltensarray vorhanden ist, geben Sie das geänderte Verhalten zurück Wenn es nicht existiert, führen Sie Schritt 4 aus.
4. Durchlaufen Sie das Verhaltensarray. Das Verhalten im Array ist eine Instanz der CBehavior-Unterklasse, und CBehavior ist wieder eine Unterklasse von CComponent. Verwenden Sie daher eine rekursive Methode Um die Methode im Verhalten zu erhalten, führen Sie Schritt 5 aus.
5. Eine Ausnahme auslösen: Das angeforderte Attribut existiert nicht.
Die __get()-Methode kann in der CComponent-Unterklasse überladen werden. Beispielsweise wird die Entscheidung über den Erhalt der Komponente zu CModule hinzugefügt. Dies führt zu einem Problem. Es ist am besten, nicht denselben Namen für Attribute und Komponenten zu verwenden, da das Programm die Komponente zuerst lädt und die gewünschten Attribute möglicherweise nicht abgerufen werden. Wenn die Namen identisch sein müssen, müssen Getter identisch sein wird verwendet, um die Attribute zu erhalten.
public function __get($name) { if($this->hasComponent($name)) return $this->getComponent($name); else return parent::__get($name); }
In Bezug auf das Laden und Erstellen von Komponenten wurden in der vorherigen YII-Framework-Analyse Anmerkungen 1: Im dritten Punkt des YII-Ausführungsprozesses gibt es eine Frage: Registrierung Der Kern des Frameworks Beeinträchtigt das gleichzeitige Laden so vieler Komponenten die Leistung? Eigentlich nein. Bei der Registrierung speichern Sie einfach die Komponente und ihre entsprechende Konfiguration in Form von Schlüssel-Wert-Paaren in einem Array (außer bei vorinstallierten). Bei Verwendung können Sie die Komponente wie oben über createComponent( in) erstellen Die YIIBase-Methode wird erstellt und initialisiert. Beim Aufrufen von __get() oder getComponent() über CModule oder seine Nachkommen (z. B. CWebApplication) zum Abrufen von Komponenten erstellt CModule einen Objektpool über das Array $_components, um sicherzustellen, dass jede Komponente nur einmal in einer Anforderung instanziiert wird.
EreignisverhaltensverwaltungEreignisse entsprechen Erweiterungen oder Plug-Ins einer Komponente. Die in der Komponente reservierten Hooks werden verwendet, um interne Aufrufe nach außen zu implementieren die Komponente und teilweise Kontrolle der Komponente von außen. In der CComponent-Unterklasse können Sie Methoden, die mit on beginnen, als Ereignisse definieren, ähnlich wie onclick, onchange usw. in js. Tatsächlich sind die Prinzipien ähnlich. Alle Ereignisse sind Unterklassen von CEvent in derselben Datei wie CComponent.
/** * Raised right BEFORE the application processes the request. * @param CEvent $event the event parameter */ public function onBeginRequest($event) { $this->raiseEvent('onBeginRequest',$event); } /** * Runs the application. * This method loads static application components. Derived classes usually overrides this * method to do more application-specific tasks. * Remember to call the parent implementation so that static application components are loaded. */ public function run() { if($this->hasEventHandler('onBeginRequest')) $this->onBeginRequest(new CEvent($this)); $this->processRequest(); if($this->hasEventHandler('onEndRequest')) $this->onEndRequest(new CEvent($this)); }
Wenn Sie beispielsweise die run()-Methode in CApplication aufrufen, ermitteln Sie vor der Verarbeitung der Anforderung zunächst, ob das Handle des onBeginRequest-Ereignisses extern übergeben wird. Wenn dies der Fall ist, ruft die Methode onBeginRequest($event) die Methode raiseEvent() in CComponent auf, um die Funktion oder Methode im Handle auszuführen.
Behavior ist eine aktualisierte Version von Event, und alle Verhaltensweisen sind Unterklassen von CBehavior. Wenn wir Schritt 4 der obigen __get()-Methodenanalyse analysieren, können wir sehen, dass die Rolle des Verhaltens darin besteht, die Eigenschaften der Komponente vollständig zu erweitern, bei denen es sich um Eigenschaften, Methoden, Ereignisse und sogar Verhaltensweisen handeln kann, was die Programmentwicklung flexibler macht.
Eine weitere Funktion des Verhaltens besteht darin, ähnliche Ereignishandles zusammenzufügen. Wenn das Verhalten die Methode attachment() ausführt, wird es den Zweck der Aspektverwaltung und -erweiterung binden . CModelBehavior sammelt beispielsweise modellbezogene Ereignisse, um die Wiederverwendung seiner Unterklassen zu erleichtern. Wir können es erben, wenn wir dem Modell Verhaltensweisen hinzufügen müssen.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Über die Verwendung der Yii-Paging-KomponenteÜber die Verwendung des Regelklassenvalidators in Yii-Daten ModellDas obige ist der detaillierte Inhalt vonAnalyse von Yii-Framework-Komponenten und Ereignisverhaltensmanagement. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Mit der kontinuierlichen Weiterentwicklung der Cloud-Computing-Technologie ist die Datensicherung zu etwas geworden, das jedes Unternehmen durchführen muss. In diesem Zusammenhang ist es besonders wichtig, ein hochverfügbares Cloud-Backup-System zu entwickeln. Das PHP-Framework Yii ist ein leistungsstarkes Framework, das Entwicklern dabei helfen kann, schnell leistungsstarke Webanwendungen zu erstellen. Im Folgenden wird vorgestellt, wie Sie mit dem Yii-Framework ein hochverfügbares Cloud-Backup-System entwickeln. Entwerfen des Datenbankmodells Im Yii-Framework ist das Datenbankmodell ein sehr wichtiger Teil. Denn das Datensicherungssystem erfordert viele Tabellen und Beziehungen

Mit der Weiterentwicklung des Internets wird auch die Nachfrage nach der Entwicklung von Webanwendungen immer größer. Für Entwickler erfordert die Entwicklung von Anwendungen ein stabiles, effizientes und leistungsstarkes Framework, das die Entwicklungseffizienz verbessern kann. Yii ist ein führendes Hochleistungs-PHP-Framework, das umfangreiche Funktionen und gute Leistung bietet. Yii3 ist die nächste Generation des Yii-Frameworks, das die Leistung und Codequalität basierend auf Yii2 weiter optimiert. In diesem Artikel stellen wir vor, wie Sie das Yii3-Framework zum Entwickeln von PHP-Anwendungen verwenden.

Da die Nachfrage nach Webanwendungen weiter wächst, haben Entwickler bei der Auswahl von Entwicklungsframeworks immer mehr Möglichkeiten. Symfony und Yii2 sind zwei beliebte PHP-Frameworks. Sie verfügen beide über leistungsstarke Funktionen und Leistung. Welches Framework ist jedoch besser geeignet, wenn es darum geht, umfangreiche Webanwendungen zu entwickeln? Als nächstes führen wir eine vergleichende Analyse von Symphony und Yii2 durch, um Ihnen zu helfen, eine bessere Wahl zu treffen. Grundlegende Übersicht Symphony ist ein Open-Source-Webanwendungs-Framework, das in PHP geschrieben ist und darauf aufbaut

Das Yii-Framework ist ein Open-Source-PHP-Webanwendungsframework, das zahlreiche Tools und Komponenten zur Vereinfachung des Prozesses der Webanwendungsentwicklung bereitstellt, wobei die Datenabfrage eine der wichtigen Komponenten ist. Im Yii-Framework können wir eine SQL-ähnliche Syntax verwenden, um auf die Datenbank zuzugreifen und Daten effizient abzufragen und zu bearbeiten. Der Abfrage-Builder des Yii-Frameworks umfasst hauptsächlich die folgenden Typen: ActiveRecord-Abfrage, QueryBuilder-Abfrage, Befehlsabfrage und Original-SQL-Abfrage

Im aktuellen Informationszeitalter sind Big Data, künstliche Intelligenz, Cloud Computing und andere Technologien in den Fokus großer Unternehmen gerückt. Unter diesen Technologien hat die Grafikkarten-Rendering-Technologie als leistungsstarke Grafikverarbeitungstechnologie immer mehr Aufmerksamkeit erhalten. Die Grafikkarten-Rendering-Technologie wird häufig in der Spieleentwicklung, bei Film- und Fernsehspezialeffekten, im technischen Modellbau und in anderen Bereichen eingesetzt. Für Entwickler ist die Wahl eines Frameworks, das zu ihren Projekten passt, eine sehr wichtige Entscheidung. Unter den aktuellen Sprachen ist PHP eine sehr dynamische Sprache. Einige hervorragende PHP-Frameworks wie Yii2, Ph

Wenn Sie fragen: „Was ist Yii?“ schauen Sie sich mein vorheriges Tutorial an: Einführung in das Yii Framework, das die Vorteile von Yii bespricht und die Neuerungen in Yii 2.0 beschreibt, das im Oktober 2014 veröffentlicht wurde. Hmm> In dieser Serie „Programmieren mit Yii2“ werde ich die Leser in die Verwendung des Yii2PHP-Frameworks einführen. Im heutigen Tutorial werde ich Ihnen zeigen, wie Sie die Konsolenfunktionalität von Yii nutzen können, um Cron-Jobs auszuführen. In der Vergangenheit habe ich wget – eine über das Internet zugängliche URL – in einem Cron-Job verwendet, um meine Hintergrundaufgaben auszuführen. Dies wirft Sicherheitsbedenken auf und hat einige Leistungsprobleme zur Folge. Während ich in unserer Serie „Sicherheit für Startup“ einige Möglichkeiten zur Risikominimierung besprochen habe, hatte ich gehofft, auf konsolengesteuerte Befehle umsteigen zu können

Mit der rasanten Entwicklung des Internets sind APIs zu einer wichtigen Möglichkeit geworden, Daten zwischen verschiedenen Anwendungen auszutauschen. Daher wird es immer wichtiger, ein API-Framework zu entwickeln, das einfach zu warten, effizient und stabil ist. Bei der Auswahl eines API-Frameworks sind Yii2 und Symfony zwei beliebte Optionen unter Entwicklern. Welches ist also besser für die API-Entwicklung geeignet? In diesem Artikel werden diese beiden Frameworks verglichen und einige Schlussfolgerungen gezogen. 1. Grundlegende Einführung Yii2 und Symfony sind ausgereifte PHP-Frameworks mit entsprechenden Erweiterungen, die zur Entwicklung verwendet werden können

Yii-Framework: In diesem Artikel wird die Methode von Yii zum Konvertieren von Objekten in Arrays oder zur direkten Ausgabe in das JSON-Format vorgestellt. Sie hat einen bestimmten Referenzwert und ich hoffe, dass sie jedem helfen kann.
