Programmierung mit Yii2 Helfer

Was Sie erstellen werden

Wenn Sie fragen: "Was ist Yii?" Auschecken Einführung in das Yii-Framework, Hier werden die Vorteile von Yii beschrieben und ein Überblick über Yii 2.0 gegeben.

Was sind Helfer??

In der Programming With Yii2-Serie unterstütze ich die Leser beim Einsatz des Yii2-Frameworks für PHP. In diesem Tutorial werde ich einen kurzen Überblick über die Helfer geben. In Yii sind Helfer Module, die unter anderem häufig nützliche Bibliotheken für die Verwaltung von Strings, Dateien, Bildern, URLs und HTMLs zusammenfassen und sich leicht erweitern lassen.

Ich zeige Ihnen auch ein Beispiel für die Erstellung eines Hilfsprogramms in Meeting Planner, das den Fokus unserer Envato Tuts + -Startingserie bildet. 

Bevor wir anfangen, denken Sie daran, ich versuche, an den folgenden Diskussionen teilzunehmen. Wenn Sie eine Frage oder ein Thema haben, schreiben Sie bitte einen Kommentar oder kontaktieren Sie mich unter Twitter @reifman. 

Wenn Sie die Lücke zwischen den Episoden der Programmierserie Yii bemerkt haben, liegt dies daran, dass ich es musste Gehirnoperation im letzten Jahr. Vielen Dank für Ihre Geduld und Ihre Unterstützung. Es ist schön, regelmäßig wieder zu schreiben. Ich freue mich darauf, Yii2 weiter zu behandeln.

Yii2-Hilfsbibliotheken

Helfer sind im Wesentlichen nur Module für topisch orientierte Codierungsunterstützung. Hier eine Liste von Helfern, die im Rahmen von Yii2 bereitgestellt werden. Diese Liste ist jetzt etwas aktueller als die Dokumentation und ihre Menüs:

  • ArrayHelper vereinfacht die Handhabung von Arrays mit Funktionen wie sicherem Nachschlagen von Werten, Mapping, Zusammenführen usw.
  • Console unterstützt die Befehlszeilenfunktionalität, sammelt Eingaben und gibt farbigen Text aus.
  • FileHelper erweitert grundlegende PHP-Dateiverwaltungsfunktionen.
  • FormatConverter konvertiert verschiedene Formate, hauptsächlich Datumsangaben.
  • HTML generiert programmgesteuert häufig verwendete HTML-Tags.
  • HtmlPurifier bereinigt Eingabetext von Benutzern, um die Sicherheit zu verbessern.
  • Imagine bietet Funktionen zur Bildbearbeitung, die von der Erweiterung yii2-imagine bereitgestellt werden.
  • Inflector bietet nützliche Stringfunktionen für allgemeine Transformationen.
  • Json kodiert und dekodiert JSON-Daten.
  • Markdown konvertiert Markdown in HTML.
  • StringHelper erweitert die grundlegenden PHP-Funktionen für Strings.
  • URL hilft beim programmgesteuerten Erstellen von URLs und deren Speicherung für die Navigation.
  • VarDumper bietet eine erweiterte var_dump-Funktion.

Ich verwende häufig die Html- und URL-Helfer in meinen Yii-Anwendungen. Sie erinnern sich vielleicht, dass ich den Imagine-Helfer beim Erstellen Ihres Startups mit PHP verwendet habe: Benutzereinstellungen, Profilbilder und Kontaktdetails, um hochgeladene Profilbilder zu skalieren.

Werfen wir einen kurzen Blick auf einige der weniger bekannten Helfer.

ArrayHelper

Wie Sie sehen, bietet ArrayHelper eine Handvoll nützlicher Array-orientierter Funktionen.

GetValue vereinfacht beispielsweise das Nachschlagen von Werten von Schlüsseln in komplexen Arrays:

// Arbeit mit dem Array $ username = \ yii \ helpers \ ArrayHelper :: getValue ($ _ POST, 'username'); // Arbeit mit dem Objekt $ username = \ yii \ helpers \ ArrayHelper :: getValue ($ user, 'username'); // Arbeit mit der anonymen Funktion $ fullName = \ yii \ helpers \ ArrayHelper :: getValue ($ user, function ($ user, $ defaultValue) Rückgabe von $ user-> firstName. ". $ user-> lastName;); / / Verwenden des Punktformats zum Abrufen der Eigenschaft des eingebetteten Objekts $ street = \ yii \ helpers \ ArrayHelper :: getValue ($ users, 'address.street'); // Verwenden eines Schlüsselfelds zum Abrufen des Werts $ value = \ yii \ helpers \ ArrayHelper :: getValue ($ versions, ['1.0', 'date']);

Oder map () erstellt ein einfaches Schlüsselwert-Array aus einem komplexeren Array:

$ array = [['id' => '123', 'name' => 'aaa', 'class' => 'x'], ['id' => '124', 'name' => 'bbb ',' class '=>' x '], [' id '=>' 345 ',' name '=>' ccc ',' class '=>' y '],]; $ result = ArrayHelper :: map ($ array, 'id', 'name'); // Das Ergebnis ist: // [// '123' => 'aaa', // '124' => 'bbb', // '345' => 'ccc', //] 

HtmlPurifier

Sie können HtmlPurifier verwenden, um die Sicherheit beim Umgang mit Benutzereingaben zu verbessern. Wenn zum Beispiel jemand SQL-Injektionscode wie oben in Ihr Formular einfügt, wird die Bereinigung mit HtmlPurifier jeden Angriff neutralisieren.

echo HtmlPurifier :: process ($ html); 

Es nutzt die Open-Source-HTML-Purifier-Bibliothek.

StringHelper

StringHelper bietet einige erweiterte Methoden zum Arbeiten mit Strings in PHP. Zum Beispiel kann truncateWords () eine Zeichenfolge auf eine bestimmte Anzahl von Wörtern reduzieren, aber auch das richtige HTML im Ergebnis beibehalten.

Bauen Sie Ihren eigenen Helfer

Als Meeting Planner, der Fokus der Startupserie, immer größer wurde, war es hilfreich, einen grundlegenden Helfer zu erstellen, den ich verwenden konnte. Fürs Erste habe ich alles zu einer namens MiscHelpers.php zusammengefasst:

Sie können sehen, dass eine Vielzahl von Methoden von verschiedenen Typen enthalten sind. Zum Beispiel, getDisplayName () Gibt entweder einen Benutzernamen, eine E-Mail-Adresse oder verkettete Zeichenfolgen mit Vor- und Nachnamen zurück, sofern verfügbar.

Es ist hilfreich, diese einmal an einer einzigen Stelle zu erstellen, anstatt sie in den Modellen je nach Bedarf neu zu schreiben.

Ich habe MiscHelpers.php erstellt, indem ich eine Datei in / common / components erstellt und eine Klasse erstellt habe, die ich in der gesamten Anwendung aufrufen kann.

Das buildCommandDiese Funktion erleichtert das programmgesteuerte Erstellen von Links für ausgehende E-Mail-Nachrichten, zu denen auch die Authentifizierung von Benutzern mit der E-Mail gehört $ auth_key in der Datenbank gespeichert.

public static function buildCommand ($ meeting_id, $ cmd = 0, $ obj_id = 0, $ actor_id = 0, $ auth_key = ") // to do - build - Zeichenfolge des lokalen oder fernen Ziels // Hinweis: Wenn Änderungen vorgenommen wurden, ändern in Message.php geben Sie url :: to (['meeting / command', 'id' => $ meeting_id, 'cmd' => $ cmd, 'actor_id' => $ actor_id, 'k' => $ auth_key, 'zurück obj_id '=> $ obj_id,], true); 

Dieses Modul hat nichts Besonderes, außer dass es dem Ziel von Standard-Yii-Helfern ähnelt, das ich zuvor beschrieben habe.

Überall, wo ich MiscHelper-Funktionen verwenden möchte, kann ich folgenden Code verwenden: