Programmering med Yii2 Hjelpere

Hva du skal skape

Hvis du spør, "Hva er Yii?" Sjekk ut Introduksjon til Yii Framework, som vurderer fordelene med Yii og inneholder en oversikt over Yii 2.0.

Hva er hjelpere?

I programmeringen med Yii2-serien, veileder jeg lesere i bruk av Yii2 Framework for PHP. I denne opplæringen gir jeg en kort oversikt over hjelpere. I Yii er hjelpere moduler som blant annet bruker nyttige biblioteker for streng, fil, bilde, URL og HTML-styring, blant annet, og de er enkle å utvide.

Jeg vil også dele et eksempel på å skape en hjelper i Meeting Planner, fokuset på vår Envato Tuts + oppstartsserie. 

Før vi begynner, vær så snill og husk, jeg prøver å delta i diskusjonene nedenfor. Hvis du har et spørsmål eller et emneforslag, vennligst legg inn en kommentar nedenfor eller kontakt meg på Twitter @ reifman. 

Hvis du la merke til gapet mellom episodene i Programming Yii-serien, er det fordi jeg måtte ha hjernekirurgi i fjor. Takk for tålmodigheten og støtten. Det er hyggelig å skrive igjen regelmessig, og jeg ser frem til fortsatt dekning av Yii2.

Yii2 Hjelperbiblioteker

I hovedsak er hjelpere bare moduler av lokalt orientert kodingsstøtte. Her er en liste over hjelpere som tilbys som en del av Yii2-denne listen er nå litt mer oppdatert enn dokumentasjonen og menyene:

  • ArrayHelper forenkler arrayhåndtering med funksjoner som trygt å slå opp verdier, kartlegging, sammenslåing, osv.
  • Console assisterer med kommandolinjens funksjonalitet, samler inn og sender ut farget tekst.
  • FileHelper utvider grunnleggende PHP-filadministrasjonsfunksjoner.
  • FormatConverter konverterer forskjellige formater, hovedsakelig datoer for nå.
  • HTML genererer programmatisk vanlige HTML-koder.
  • HtmlPurifier renser innteksttekst fra brukere for å forbedre sikkerheten.
  • Tenk deg å gi bildemanipuleringsfunksjoner levert av yii2-imagine-utvidelsen.
  • Inflector gir nyttige strengfunksjoner for vanlige transformasjoner.
  • Json koder og dekoder JSON data.
  • Markdown konverterer markdown til HTML.
  • StringHelper utvider de grunnleggende PHP-funksjonene for strenge.
  • Url hjelper med å programmere opprette nettadresser og huske dem for navigering.
  • VarDumper gir en avansert var_dump-funksjon.

Jeg bruker vanligvis Html- og Url-hjelperne over mine Yii-applikasjoner. Og du kan huske at jeg brukte Imagine-hjelperen i å bygge din oppstart med PHP: Brukerinnstillinger, profilbilder og kontaktdetaljer for å skalere opplastede profilbilder.

La oss ta en kort titt på noen av de mindre kjent hjelperne.

ArrayHelper

Som du kan se, gir ArrayHelper en håndfull nyttige array-orienterte funksjoner.

For eksempel forenkler getValue å se opp verdier fra nøkler i komplekse arrays:

// arbeider med array $ brukernavn = \ yii \ helpers \ ArrayHelper :: getValue ($ _ POST, 'brukernavn'); // arbeider med objekt $ brukernavn = \ yii \ helpers \ ArrayHelper :: getValue ($ bruker, 'brukernavn'); // arbeider med anonym funksjon $ fullName = \ yii \ helpers \ ArrayHelper :: getValue ($ bruker, funksjon ($ bruker, $ defaultValue) return $ user-> firstName. ". $ user-> lastName;); / / bruker punktformat for å hente egenskapen til den innebygde objekten $ street = \ yii \ helpers \ ArrayHelper :: getValue ($ users, 'address.street'); // ved hjelp av en rekke nøkler for å hente verdien $ value = \ yii \ helpers \ ArrayHelper :: getValue ($ versjoner, ['1.0', 'date']);

Eller kart () bygger en enkel nøkkelverdiermatrise fra et mer komplekst utvalg:

$ array = ['' id '=>' 123 ',' navn '=>' aaa ',' klasse '=>' x '], [' id '=>' 124 ',' navn '=>' bbb ',' class '=>' x '], [' id '=>' 345 ',' navn '=>' ccc ',' klasse '=>' y '],]; $ result = ArrayHelper :: map ($ array, 'id', 'name'); // resultatet er: // [// '123' => 'aaa', // '124' => 'bbb', // '345' => 'ccc', //] 

HtmlPurifier

Du kan bruke HtmlPurifier for å forbedre sikkerheten for håndtering med brukerinngang. For eksempel, hvis noen klistrer SQL-injeksjonskoden i skjemaet ditt som ovenfor, vil rensing av det med HtmlPurifier nøytralisere ethvert angrep.

ekko HtmlPurifier :: prosess ($ html); 

Det utnytter HTML-rensebiblioteket med åpen kildekode.

StringHelper

StringHelper gir noen utvidede metoder for å arbeide med strenger i PHP. For eksempel kan truncateWords () redusere en streng til et bestemt antall ord, men også bevare riktig HTML i resultatet.

Bygg din egen hjelper

Som møteplanlegger ble fokuset i oppstartsserien større, jeg fant det nyttig å lage en grunnleggende hjelper som jeg kunne bruke. For nå har jeg kombinert alt til en som heter MiscHelpers.php:

Du kan se en rekke metoder er inkludert i forskjellige typer. For eksempel, getDisplayName () returnerer enten et brukernavn, en e-post eller sammenkalt strenger av for- og etternavn når det er tilgjengelig.

Det er nyttig å lage disse en gang på ett sted i stedet for å omskrive dem annerledes i modeller som de trengs.

Jeg opprettet MiscHelpers.php ved å lage en fil i / felles / komponenter og bygge en klasse som jeg kunne påberope gjennom hele søknaden.

De buildCommandfunksjonen gjør det enkelt å programmere koblinger for utgående e-postmeldinger som inkluderer muligheten til å autentisere brukere med $ auth_key lagret i databasen.

offentlig statisk funksjon buildCommand ($ meeting_id, $ cmd = 0, $ obj_id = 0, $ actor_id = 0, $ auth_key = ") // for å gjøre - bygg streng av lokal eller ekstern destinasjon // notat: i Message.php returnere Url :: til (['møte / kommando', 'id' => $ meeting_id, 'cmd' => $ cmd, 'actor_id' => $ actor_id, 'k' => $ auth_key, ' obj_id '=> $ obj_id,], true); 

Det er egentlig ikke noe spesielt med denne modulen enn at den ligner målet med standard Yii-hjelpere som jeg tidligere beskrev.

Hvor som helst jeg vil bruke MiscHelper-funksjoner, kan jeg bruke følgende kode: