Programarea cu Yii2 Helpers

Ce veți crea

Dacă vă întrebați: "Ce este Yii?" verifică Introducere în Cadrul Yii, care analizează beneficiile Yii și include o prezentare generală a Yii 2.0.

Ce sunt ajutoarele?

În programul de programare cu seria Yii2, îndrumăm cititorii în folosirea cadrului Yii2 pentru PHP. În acest tutorial, voi oferi o scurtă trecere în revistă a ajutoarelor. În Yii, ajutoarele sunt module care grupează în mod obișnuit biblioteci utile pentru gestionarea șirului, fișierelor, imaginilor, URL-urilor și HTML-urilor și sunt ușor de prelungit.

Voi împărtăși, de asemenea, un exemplu de creare a unui ajutor în Planificatorul de întâlniri, în centrul seriei de pornire Envato Tuts +. 

Înainte de a începe, amintiți-vă, încerc să particip la discuțiile de mai jos. Dacă aveți o întrebare sau o sugestie de subiect, vă rugăm să postați un comentariu de mai jos sau să mă contactați pe Twitter @reifman. 

Dacă ați observat diferența dintre episoadele seriei de programare Yii, este pentru că a trebuit să am operație pe creier anul trecut. Vă mulțumim pentru răbdarea și sprijinul dvs. - este bine să scrieți din nou în mod regulat și aștept cu nerăbdare să vă continuăm să reflectați Yii2.

Bibliotecile Helper Yii2

În esență, ajutoarele sunt doar module de suport de codare orientat local. Iată o listă de ajutoare furnizate ca parte a Yii2 - această listă este acum mult mai actualizată decât documentația și meniurile sale:

  • ArrayHelper simplifică manipularea array-urilor cu funcții precum valori, cartografiere, fuzionare, etc.
  • Consola asistă cu funcționalitatea liniei de comandă, colectând intrarea și ieșind text colorat.
  • FileHelper extinde caracteristicile de bază pentru gestionarea fișierelor PHP.
  • FormatConverter convertește diferite formate, în cea mai mare parte date pentru moment.
  • Html generează în mod programat etichete HTML utilizate în mod obișnuit.
  • HtmlPurifier curata textul de intrare de la utilizatori pentru a imbunatati securitatea.
  • Imaginați-vă că oferă funcții de manipulare a imaginii furnizate de extensia yii2-imagine.
  • Inflectorul oferă funcții de șir utile pentru transformările comune.
  • Json codifică și decodează datele JSON.
  • Markdown convertește marcajul în HTML.
  • StringHelper extinde funcțiile de bază PHP pentru șiruri de caractere.
  • URL-ul asistă cu crearea URL-urilor programabile și amintirea lor pentru navigare.
  • VarDumper oferă o funcție avansată var_dump.

Eu folosesc în mod obișnuit ajutorul Html și Url în aplicațiile mele Yii. Și, poate vă amintiți, am folosit Ajutorul Imaginați în Construirea sistemului de pornire cu PHP: Setări de utilizator, Imagini de profil și Detalii de contact pentru a scala imaginile de profil încărcate.

Să aruncăm o privire scurtă asupra unora dintre ajutoarele mai puțin cunoscute.

ArrayHelper

După cum puteți vedea, ArrayHelper oferă o mulțime de funcții utile de orientare.

De exemplu, getValue simplifică căutarea valorilor din cheile din matrice complexe:

// lucrează cu matrice $ username = \ yii \ helpers \ ArrayHelper :: getValue ($ _ POST, 'username'); // lucrează cu obiectul $ username = \ yii \ helpers \ ArrayHelper :: getValue ($ user, 'username'); // lucrează cu funcția anonimă $ fullName = \ yii \ helpers \ ArrayHelper :: getValue ($ user, funcție ($ user, $ defaultValue) return $ user-> firstName. / folosind formatul punct pentru a extrage proprietatea obiectului încorporat $ street = \ yii \ helpers \ ArrayHelper :: getValue ($ users, 'address.street'); // folosind o serie de chei pentru a extrage valoarea $ value = \ yii \ helpers \ ArrayHelper :: getValue ($ versiuni, ['1.0', 'data']);

Sau harta () construiește o simplă matrice de valori cheie dintr-o matrice mai complexă:

$ '=' '', 'nume' => 'bbb', 'nume' => ' ',' class '=>' x '], [' id '=>' 345 ',' nume '=>' ccc ',' class '=>' y '],]; $ rezultat = ArrayHelper :: harta ($ array, 'id', 'nume'); // rezultatul este: // ['123' => 'aaa', // '124' => 'bbb', // '345' => 'ccc' 

HtmlPurifier

Puteți utiliza HtmlPurifier pentru a îmbunătăți securitatea manipulării cu ajutorul utilizatorului. De exemplu, dacă cineva introduce codul de injecție SQL în formularul de mai sus, curățarea cu HtmlPurifier va neutraliza orice atac.

echo HtmlPurifier :: proces ($ html); 

Acesta utilizează librăria open-source HTML Purifier.

StringHelper

StringHelper oferă câteva metode extinse pentru lucrul cu șiruri de caractere în PHP. De exemplu, truncateWords () poate să reducă un șir la un anumit număr de cuvinte, dar să păstreze și HTML-ul adecvat în cadrul rezultatului.

Construiește-ți propriul ajutor

Ca Planificator de Întâlniri, focus-ul seriei de pornire, a devenit mai mare, mi-a fost util să creez un ajutor de bază pe care l-aș putea folosi. Pentru moment, am combinat totul într-unul numit MiscHelpers.php:

Puteți vedea o varietate de metode care sunt incluse de diferite tipuri. De exemplu, getDisplayName () returnează fie un nume de utilizator, un e-mail, fie șiruri de caractere concatenate cu numele și prenumele, atunci când sunt disponibile.

Este util să le creați o singură dată într-un singur loc, decât să le rescrieți în mod diferit în modele, deoarece acestea sunt necesare.

Am creat MiscHelpers.php creând un fișier în / common / components și construind o clasă pe care am putut să o invoc în întreaga aplicație.

 buildCommandFuncția facilitează crearea de link-uri pentru mesajele de e-mail de ieșire programate, care includ capacitatea de autentificare a utilizatorilor cu $ auth_key stocate în baza de date.

funcția publică statică buildCommand ($ meeting_id, $ cmd = 0, $ obj_id = 0, $ actor_id = 0, $ auth_key = ") // de a construi un șir de destinație locală sau la distanță // notă: în Message.php întoarcere Url :: la (['întâlnire / comandă', 'id' => $ meeting_id, 'cmd' => $ cmd, 'actor_id' => $ actor_id, 'k' obj_id '=> $ obj_id,], adevărat); 

Nu există nimic deosebit în legătură cu acest modul, în afară de faptul că seamănă cu obiectivul ajutoarelor standard Yii pe care le-am descris mai devreme.

Oriunde vreau să utilizez funcțiile MiscHelper, pot folosi următorul cod:

 
	
Cod