Als je vraagt: "Wat is Yii?" uitchecken Introductie tot het Yii Framework, die de voordelen van Yii beoordeelt en een overzicht van Yii 2.0 bevat.
In de Programming With Yii2-serie begeleid ik lezers in gebruik van het Yii2 Framework voor PHP. In deze zelfstudie geef ik een kort overzicht van helpers. In Yii zijn helpers modules die algemeen bruikbare bibliotheken groeperen voor onder meer string-, bestands-, image-, URL- en HTML-beheer, en ze zijn eenvoudig uit te breiden.
Ik zal ook een voorbeeld geven van het maken van een helper in Meeting Planner, de focus van onze Envato Tuts + opstartreeks.
Voordat we van start gaan, onthoud alsjeblieft dat ik probeer deel te nemen aan de onderstaande discussies. Als je een vraag of een suggestie voor een onderwerp hebt, plaats dan een reactie hieronder of neem contact met mij op via Twitter @reifman.
Als je de kloof tussen de programmeerperiodes van de Yii-serie hebt opgemerkt, komt dat omdat ik het moest hebben hersenoperatie vorig jaar. Bedankt voor uw geduld en ondersteuning - het is goed om regelmatig opnieuw te schrijven en ik kijk uit naar de voortzetting van de dekking van Yii2.
In wezen zijn helpers slechts modules met topisch georiënteerde codeerondersteuning. Hier is een lijst met helpers die wordt aangeboden als onderdeel van Yii2-deze lijst is nu een beetje meer up-to-date dan de documentatie en de menu's:
Ik gebruik de helpers van Html en Url vaak in mijn Yii-toepassingen. En, je herinnert je misschien, ik gebruikte de Imagine helper bij het opbouwen van je start met PHP: gebruikersinstellingen, profielafbeeldingen en contactgegevens om geüploade profielfoto's te schalen..
Laten we een korte blik werpen op enkele minder bekende helpers.
Zoals u kunt zien, biedt ArrayHelper een handvol handige array-georiënteerde functies.
GetValue vereenvoudigt bijvoorbeeld het opzoeken van waarden van sleutels in complexe arrays:
// werken met array $ username = \ yii \ helpers \ ArrayHelper :: getValue ($ _ POST, 'gebruikersnaam'); // werken met object $ gebruikersnaam = \ yii \ helpers \ ArrayHelper :: getValue ($ user, 'username'); // werken met anonieme functie $ fullName = \ yii \ helpers \ ArrayHelper :: getValue ($ user, function ($ user, $ defaultValue) return $ user-> firstName. ". $ user-> lastName;); / / met behulp van puntindeling om de eigenschap van ingesloten object $ street = \ yii \ helpers \ ArrayHelper :: getValue ($ users, 'address.street'); // met een reeks sleutels op te halen om de waarde $ value = \ yii op te halen \ helpers \ ArrayHelper :: getValue ($ versies, ['1.0', 'date']);
Of map () bouwt een eenvoudige array met sleutelwaarden op uit een complexere 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'); // het resultaat is: // [// '123' => 'aaa', // '124' => 'bbb', // '345' => 'ccc', //]
U kunt HtmlPurifier gebruiken om de beveiliging van het gebruik met gebruikersinvoer te verbeteren. Als iemand bijvoorbeeld SQL-injectiekode in uw formulier plakt zoals hierboven, zal het opschonen met HtmlPurifier elke aanval neutraliseren.
echo HtmlPurifier :: proces ($ html);
Het maakt gebruik van de open-source HTML Purifier-bibliotheek.
StringHelper biedt enkele uitgebreide methoden om met strings in PHP te werken. TruncateWords () kan bijvoorbeeld een tekenreeks reduceren tot een bepaald aantal woorden, maar ook de juiste HTML binnen het resultaat behouden.
Toen Meeting Planner, de focus van de startup-serie, groter werd, vond ik het nuttig om een basishelper te maken die ik kon gebruiken. Voor nu combineerde ik alles tot een genaamd MiscHelpers.php:
Je kunt een verscheidenheid aan methoden zien van verschillende typen. Bijvoorbeeld,
getDisplayName ()
geeft, indien beschikbaar, een gebruikersnaam, een e-mailadres of aaneengesloten tekenreeksen van voor- en achternaam.Het is handig om deze één keer op één plek te maken in plaats van ze anders in modellen te herschrijven wanneer ze nodig zijn.
Ik heb MiscHelpers.php gemaakt door een bestand in / common / components te maken en een klasse te maken die ik gedurende de hele applicatie zou kunnen gebruiken.
De
buildCommand
functie maakt het eenvoudig om koppelingen voor uitgaande e-mailberichten programmatisch te bouwen, met de mogelijkheid om gebruikers te authenticeren met de$ auth_key
opgeslagen in de database.openbare statische functie buildCommand ($ meeting_id, $ cmd = 0, $ obj_id = 0, $ actor_id = 0, $ auth_key = ") // to do - tekenreeks van lokale of externe bestemming maken // let op: wijzig de wijzigingen in Message.php return URL :: to (['meeting / command', 'id' => $ meeting_id, 'cmd' => $ cmd, 'actor_id' => $ actor_id, 'k' => $ auth_key, ' obj_id '=> $ obj_id,], true);Er is niets bijzonders aan deze module anders dan dat het lijkt op het doel van de standaard Yii Helpers die ik eerder heb beschreven.
Overal waar ik de MiscHelper-functies wil gebruiken, kan ik de volgende code gebruiken: