Anatomia di Former
Lo so, ti occorre un pò di pazienza per imparare tutte queste classi. Un buon modo per iniziare può essere quello di elencare specificando di cosa si occupano:
- Former: è la classe principale e si occupa delle configurazioni e delle interazioni tra le varie componenti di un form
- FormerServiceProvider: è il Service Provider per Laravel 4
- Helpers: un set di helpers statici a supporto delle varie librerie
- Dispatch: intercetta la chiamata che viene fatta alla
Former
facade rimandandola alla classe di competenza - LiveValidation: gestisce la validazione dei campi e la traduzione delle regole negli attributi
- Populator: è un contenitore di valori che Former sfrutta per fare il get/set degli stessi
- Traits:
- Checkable: metodi e proprietà relativi a radiobutton e checkbox
- Field: metodi e proprietà relativi ai campi
- FormerObject: oggetto che estende le caratteristiche di cui sopra, gestisce attributi dinamici
- Framework: metodi e proprietà comuni ai vari framework
- Interfaces: metodi required dei vari framework
- FieldInterface
- FrameworkInterface
- Framework : queste classi generano il corretto markup in base al framework in uso
- Nude
- TwitterBootstrap
- ZurbFoundation
- Form: le seguenti classi gestiscono il markup di una form
- Actions: gestisce le azioni dei pulsanti submit
- Elements: gestisce i vari elementi del form che non sono azioni (legende, ecc..)
- Form: gestisce l’apertura e la chiusura dei form e altri metodi correlati
- Group: si occupa del wrap e dello stato dei campi, del recupero degli errori e altro
- Fields: una serie di classi ognuna delle quali gestisce un tipo di campo
- Button
- Checkbox
- File
- Hidden
- Input
- Radio
- Select
- Textarea
-
Uneditable
-
Facades : Alcuni entry points che facilitano l’esperienza attraverso i vari ambiaenti
- Agnostic : la facade di base usata da Former al di fuori di ogni framework
- FormerBuilder :Metodi comuni e blocchi da usare per tutte le facade
- Illuminate : la facade di Laravel 4, aggancia Former ad alcuni componenti (localizzazione etc)
LaravelThree : la facade di Laravel 3, aggancia Former ad alcuni componenti (localizzazione etc)
Legacy : Un set di A set of classi redirector che unificano l’interfaccia tra Laravel 3 e 4 - Config
- Redirector
- Session
- Translator
Descrizione dei metodi
FormerFormer
E’ la classe principale e costituisce la tua interfaccia per tutto in Former. Chiaramente Former ti da la possibilità di interagire con le sue sottoclassi e quindi non solo puoi usare i suoi metodi ma anche quelli delle sottoclassi.
Option
E’ un set di opzioni utili a modificare il comportamento di Former
Former::config(‘translate_from’, [string]) (‘validation.attributes’)
Di default, Former tenta di tradurre labels, legend e help text. Prima effettua un tentativo di traduzione delle stringhe in automatico poi controlla che il testo sia presente da un’altra parte. Puoi impostare questa variabile che di default è settata a 'validation.attributes.mykey'
.
Former::config(‘required_class’, [string]) (‘required’)
Una classe da aggiungere ai campi impostati come obbligatori
Former::config(‘default_form_type’, [horizontal|vertical|inline|search]) (‘horizontal’)
Di default quando chiami Former::open
, una fallback form type viene assegnata al form – dice di che tipo è il form. Può essere uno dei valori o null se non vuoi usare le classi di Bootrap per i form.
Former::config(‘fetch_errors’, [boolean]) (true)
Ogni volta che chiamo il metodo open
, se è settato a true, Former controllerà nell’array Session la presenza dell’oggetto Message che il metodo ->with_errors()
della classe Redirect
avrebbe dovuto creare. Ciò significa che se chiami Redirect::to()->with_errors()
quando la validazione fallisce, Former assocerà automaticamente gli errori visualizzandoli accanto ai campi corrispondenti senza dover scrivere ulteriore codice.
Former::config(‘automatic_label’, [boolean]) (true)
Permette all’utente di attivare o meno le label automatiche. Quando è attivo, se crei un campo di nome foo
senza specificare la label, Former assumerà che foo
sia la label per quel campo. In sostanza Former tenterà di tradurla e di usarla come label. Se il campo non è attivo nessuna label verrà assegnata al campo.
Former::config(‘live_validation’, [boolean]) (true)
In questo caso Former cercherà di usare le regole del Validator di Laravel come attributi con l’opzione live_validation.
Former::config(‘push_checkboxes’, [boolean]) (true)
In questo caso i checkboxes devono essere sempre presenti nei dati in POST: sia se checked o no.
Helpers
Former::populate([array|Eloquent])
Popola i campi con un array di valori o con un oggetto Eloquent
Former::withErrors([Validator])
Dopo il fallimento di una validazione Former effettua il fetch della variabile $errors
dalla Session e imposta come non corretti i campi corrispondenti visualizzando l’errore. Se ti trovi all’interno del controller puoi passare l’oggetto $validator
a Former per ottenere lo stesso comportamento.
Former::withRules([array])
Consente di passare una serie di regole Laravel a Former, provando ad applicarle su attributi HTML come pattern
, maxlength
, ecc..
Former::framework([bootstrap|zurb|null])
Seleziona il tipo di framework CSS Former deve usare per la sua sintassi dandoti più o meno accesso ai metodi disponibili: ad esempio non puoi usare il metodo Bootstrap ->blockHelp
se stai usando Zurb, ecc…
$error = Former::getErrors([string])
E’ l’equivalente di $error = isset($errors) ? $errors->first('field') : null
.
Form builders
Former::legend([string])
Apre un tag Bootstrap di tipo `