Se stai chiedendo "Cos'è Yii?" check-out Introduzione al framework Yii, che rivede i vantaggi di Yii e include una panoramica di Yii 2.0.
Nella serie Programming with Yii2, guido i lettori nell'uso di Yii2 Framework per PHP. In questo tutorial fornirò una breve panoramica degli helper. In Yii, gli helper sono moduli che raggruppano le librerie comunemente utili per la gestione di stringhe, file, immagini, URL e HTML, tra le altre cose, e sono facili da estendere.
Condividerò anche un esempio di creazione di un helper in Meeting Planner, il fulcro della nostra serie di startup Envato Tuts +.
Prima di iniziare, ricorda, cerco di partecipare alle discussioni di seguito. Se hai una domanda o un suggerimento sull'argomento, per favore pubblica un commento qui sotto o contattami su Twitter @reifman.
Se hai notato il divario tra gli episodi della serie di programmazione Yii, è perché dovevo averlo chirurgia cerebrale l'anno scorso. Grazie per la vostra pazienza e supporto: è bello scrivere di nuovo regolarmente, e non vedo l'ora di continuare la copertura di Yii2.
In sostanza, gli helper sono solo moduli di supporto per la codifica orientato alla topica. Ecco una lista di helper forniti come parte di Yii2: questa lista è ora un po 'più aggiornata della documentazione e dei suoi menu:
Uso comunemente gli helper Html e Url nelle mie applicazioni Yii. E, potresti ricordare, ho utilizzato l'helper Imagine in Building Your Startup con PHP: Impostazioni utente, immagini del profilo e dettagli del contatto per ridimensionare le immagini del profilo caricato.
Diamo una breve occhiata ad alcuni degli aiutanti meno conosciuti.
Come puoi vedere, ArrayHelper offre una manciata di utili funzioni orientate agli array.
Ad esempio, getValue semplifica la ricerca dei valori delle chiavi negli array complessi:
// lavora con array $ username = \ yii \ helpers \ ArrayHelper :: getValue ($ _ POST, 'username'); // lavora con oggetto $ username = \ yii \ helpers \ ArrayHelper :: getValue ($ user, 'username'); // funziona con la funzione anonima $ fullName = \ yii \ helpers \ ArrayHelper :: getValue ($ utente, funzione ($ utente, $ defaultValue) return $ user-> firstName. ". $ user-> lastName;); / / utilizzando il formato punto per recuperare la proprietà dell'oggetto incorporato $ street = \ yii \ helpers \ ArrayHelper :: getValue ($ users, 'address.street'); // utilizza un array di chiavi per recuperare il valore $ value = \ yii \ helpers \ ArrayHelper :: getValue ($ versions, ['1.0', 'date']);
Oppure map () crea un array di valori chiave semplice da un array più complesso:
$ 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'); // il risultato è: // [// '123' => 'aaa', // '124' => 'bbb', // '345' => 'ccc', //]
È possibile utilizzare HtmlPurifier per migliorare la sicurezza della gestione con l'input dell'utente. Ad esempio, se qualcuno incolla codice di iniezione SQL nel tuo modulo come sopra, pulendolo con HtmlPurifier neutralizzerà qualsiasi attacco.
echo HtmlPurifier :: process ($ html);
Sfrutta la libreria Purifier HTML open-source.
StringHelper fornisce alcuni metodi estesi per lavorare con le stringhe in PHP. Ad esempio, truncateWords () può ridurre una stringa in un determinato numero di parole, ma anche conservare l'HTML corretto all'interno del risultato.
Dato che Meeting Planner, il fulcro della serie di startup, è diventato più grande, ho trovato utile creare un helper di base che potessi usare. Per ora, ho combinato tutto in uno chiamato MiscHelpers.php:
Puoi vedere una varietà di metodi inclusi in diversi tipi. Per esempio,
getDisplayName ()
restituisce un nome utente, un'e-mail o stringhe concatenate di nome e cognome quando disponibili.È utile crearli una volta in un singolo posto piuttosto che riscriverli in modi diversi nei modi in cui sono necessari.
Ho creato MiscHelpers.php creando un file in / common / components e costruendo una classe che potrei invocare per tutta l'applicazione.
Il
buildCommand
La funzione semplifica la creazione di collegamenti a livello di codice per i messaggi e-mail in uscita che includono la possibilità di autenticare gli utenti con il$ auth_key
memorizzato nel database.funzione statica pubblica buildCommand ($ meeting_id, $ cmd = 0, $ obj_id = 0, $ actor_id = 0, $ auth_key = ") // to do - crea una stringa di destinazione locale o remota // nota: se la modifica è stata apportata, cambia 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);Non c'è niente di speciale in questo modulo se non che assomiglia all'obiettivo degli Helpers standard di Yii che ho descritto in precedenza.
Ovunque voglio usare le funzioni di MiscHelper, posso usare il seguente codice: