Oggi vi presentiamo un plugin scritto da noi, Autodate. Lo trovate sul nostro repository github. Un plugin che abbiamo scritto per risolvere un problema comune quando si lavora con le applicazioni utilizzando date nel formato italiano (gg/mm/aaaa), la conversione a video per l’utente finale e la conversione nel formato MySQL per salvare la data.

Installazione Plugin CakePHP Autodate

È possibile installare il plugin utilizzando composer. Inseriamo all’interno del nostro composer.json la seguente stringa

o da shell

Installazione Manuale Plugin

  • Scarichiamo il file zip dal repository.
  • Estraiamo il contenuto nella cartella app/Plugin/Autodate
  • Abilitiamo il Plugin nel Bootstrap

Utilizzo Plugin Date

L’utilizzo più semplice, configura e dimentica, è attaccare il Behavior all’AppModel.

Questo renderà TUTTI i campi di tipo “date” con il formato desiderato. Naturalmente è possibile attaccare il Behavior ad un singolo modello, o configurarlo differentemente per ogni modello, ma difficilmente sarà necessario.

I formati di data disponibili in questo momento sono i seguenti:

  • ‘d-m-Y’
  • ‘d/m/Y’
  • ‘Y/m/d’
  • ‘Y-m-d’
  • ‘Y-d-m’
  • ‘Y/d/m’
  • ‘m-d-Y’
  • ‘m/d/Y’
  • ‘Ymd’
  • ‘Ydm’

Questi formati dovrebbero coprire gran parte delle esigenze ma, nel dubbio, stiamo lavorando per aggiungerne altri e rendere la configurazione più libera.

Utilizziamo questo Plugin in alcuni dei nostri progetti con buoni risultati. Il plugin si sposa alla perfezione con gestionali di backend dove il formato italiano è un’esigenza del cliente (fatturazione, bolle, scadenze etc…) che non può essere ignorata. L’alternativa è utilizzare il TimeHelper di CakePHP che ci costringe ad eseguire il seguente codice in ogni View:

Senza contare che, per utilizzarlo negli input di un form, saremmo costretti a convertire ogni campo “date” nel formato MySQL.

Il Plugin si occupa di effettuare queste conversioni in automatico utilizzando i Callback Methods.

Gli aiuti sono sempre i ben venuti, chiunque voglia contribuire può clonare il repository ed inviare una merge request, oppure segnalare bugs e malfunzionamenti.

Per ora è tutto! 🙂

Seguimi

Walter Raponi

Appassionato di torte!

Ingredienti base: Model, View, Controller! Un grande framework come CakePHP e la nostra torta è pronta!
Seguimi

Latest posts by Walter Raponi (see all)