Programmering med Yii2 Hjälpare

Vad du ska skapa

Om du frågar, "Vad är Yii?" checka ut Introduktion till Yii Framework, som granskar fördelarna med Yii och innehåller en översikt över Yii 2.0.

Vad är hjälpare?

I programmeringen med Yii2-serien guidar jag läsare som använder Yii2 Framework for PHP. I denna handledning ger jag en kort översikt över hjälpare. I Yii är hjälpare moduler som bland annat brukar använda bibliotek för sträng-, fil-, bild-, URL- och HTML-hantering, och de är lätta att förlänga.

Jag delar också ett exempel på att skapa en hjälpare inom mötesplaneraren, som är fokus för vår Envato Tuts + startupserie. 

Innan vi börjar, kom ihåg, jag försöker delta i diskussionerna nedan. Om du har en fråga eller ett ämnesförslag, vänligen skriv en kommentar nedan eller kontakta mig på Twitter @ reifman. 

Om du märkte klyftan mellan episoderna i Programming Yii-serien, beror det på att jag måste ha hjärnkirurgi förra året. Tack för ditt tålamod och stöd - det är trevligt att skriva regelbundet igen, och jag ser fram emot att fortsätt att täcka Yii2.

Yii2 Hjälperbibliotek

I huvudsak är hjälpare bara moduler av lokalt orienterat kodningsstöd. Här är en lista över hjälpmedel som tillhandahålls som en del av Yii2-listan är nu lite mer aktuell än dokumentationen och dess menyer:

  • ArrayHelper förenklar arrayhantering med funktioner som att säkert se upp värden, kartläggning, sammanslagning etc..
  • Konsolen hjälper till med kommandoradsfunktionalitet, samlar in inmatning och utmatar färgad text.
  • FileHelper utökar grundläggande PHP-filhanteringsfunktioner.
  • FormatConverter konverterar olika format, mestadels datum för nu.
  • Html genererar generellt vanliga HTML-taggar.
  • HtmlPurifier rensar inmatningstext från användare för att förbättra säkerheten.
  • Föreställ dig bildfunktioner som tillhandahålls av yii2-imagine-förlängningen.
  • Inflector tillhandahåller användbara strängfunktioner för vanliga transformationer.
  • Json kodar och avkodar JSON data.
  • Markdown konverterar markdown till HTML.
  • StringHelper utökar de grundläggande PHP-funktionerna för strängar.
  • Url hjälper till med att programmässigt skapa webbadresser och komma ihåg dem för navigering.
  • VarDumper ger en avancerad var_dump-funktion.

Jag använder vanligtvis Html- och Url-hjälparna över mina Yii-applikationer. Och du kan komma ihåg att jag använde Imagine-hjälpen i att bygga din start med PHP: Användarinställningar, profilbilder och kontaktuppgifter för att skala uppladdade profilbilder.

Låt oss ta en kort titt på några av de mindre kända hjälparna.

ArrayHelper

Som du kan se ger ArrayHelper en handfull användbara arrayinriktade funktioner.

För exempel förenklar getValue att söka upp värden från nycklar i komplexa arrayer:

// arbetar med array $ användarnamn = \ yii \ helpers \ ArrayHelper :: getValue ($ _ POST, 'användarnamn'); // arbetar med objekt $ användarnamn = \ yii \ helpers \ ArrayHelper :: getValue ($ user, 'användarnamn'); // arbetar med anonym funktion $ fullName = \ yii \ helpers \ ArrayHelper :: getValue ($ användare, funktion ($ user, $ defaultValue) return $ user-> firstName. ". $ user-> lastName;); / / använda punktformat för att hämta egenskapen för det inbäddade objektet $ street = \ yii \ helpers \ ArrayHelper :: getValue ($ users, 'address.street'); // med hjälp av en rad nycklar för att hämta värdet $ value = \ yii \ helpers \ ArrayHelper :: getValue ($ versioner, ['1.0', 'date']);

Eller karta () bygger en enkel nyckelvärdesgrupp från en mer komplex grupp:

$ array = [['id' => '123', 'namn' => 'aaa', 'class' => 'x'], ['id' => '124', 'namn' => 'bbb ',' class '=>' x '], [' id '=>' 345 ',' namn '=>' ccc ',' class '=>' y '],]; $ result = ArrayHelper :: karta ($ array, 'id', 'name'); // resultatet är: // [// '123' => 'aaa', // '124' => 'bbb', // '345' => 'ccc', //] 

HtmlPurifier

Du kan använda HtmlPurifier för att förbättra säkerheten för hantering med användarinmatning. Till exempel, om någon klistrar in SQL-inmatningskoden i din form som ovan, kommer rensning av det med HtmlPurifier att neutralisera alla attacker.

echo HtmlPurifier :: process ($ html); 

Den använder HTML-reningsbiblioteket med öppen källkod.

StringHelper

StringHelper ger några utökade metoder för att arbeta med strängar i PHP. Till exempel kan truncateWords () minska en sträng till ett visst antal ord, men också bevara rätt HTML i resultatet.

Bygg din egen hjälpare

Som mötesplanerare blev fokusen för startserien större, jag tyckte att det var bra att skapa en grundläggande hjälpare som jag kunde använda. För närvarande kombinerade jag allt till en som heter MiscHelpers.php:

Du kan se en mängd olika metoder ingår i olika typer. Till exempel, getDisplayName () returnerar antingen ett användarnamn, ett e-postmeddelande eller sammanfogade strängar med för- och efternamn när det är tillgängligt.

Det är användbart att skapa dessa en gång i en enda plats i stället för att skriva om dem på olika sätt i modeller som de behöver.

Jag skapade MiscHelpers.php genom att skapa en fil i / gemensam / komponenter och bygga en klass som jag kunde åberopa i hela applikationen.

De buildCommandfunktionen gör det enkelt att programmässigt bygga länkar för utgående e-postmeddelanden som inkluderar möjligheten att autentisera användare med $ auth_key lagras i databasen.

offentliga statiska funktion buildCommand ($ meeting_id, $ cmd = 0, $ obj_id = 0, $ actor_id = 0, $ auth_key = ") // för att göra - bygg sträng av lokal eller fjärr destination // anteckning i Message.php returnera Url :: till (['möte / kommando', 'id' => $ meeting_id, 'cmd' => $ cmd, 'actor_id' => $ actor_id, 'k' => $ auth_key, ' obj_id '=> $ obj_id,], true); 

Det finns inte något speciellt med den här modulen än att den liknar målet med standard Yii-hjälpare som jag tidigare beskrivit.

Överallt vill jag använda MiscHelper-funktioner, kan jag använda följande kod: