Utilizzare le Estensioni di Doctrine in progetti symfony2

Doctrine prevede un set di eventi che permettono di modificarne ed estenderne il comportamento. Tramite l’utilizzo di questi eventi è possibile implementare nuove funzionalità non previste dall’ ORM. Sfruttando questa potenzialità è stato creato un set di estensioni per mettere a disposizione degli sviluppatori alcuni comportamenti di uso comune. L’integrazione all’interno di symfony2 è facilitata dal bundle StofDoctrineExtensionsBundle.

Il repository DoctrineExtensions prevede queste estensioni:

  • Translatable
  • Sluggable
  • Timestampable
  • Loggable
  • Tree
  • Sortable

I nomi sono piuttosto indicativi riguardo allo scopo di ognuna. Chi viene da symfony 1.x e doctrine 1.x ricorderà certamente una serie di plugin *ActAs* che avevano esattamente lo stesso scopo di queste estensioni.

Come detto, per utilizzare questi comportamenti in progetti symfony2, è possibile usufruire del bundle StofDoctrineExtensionsBundle che mette a disposizione listener e configurazioni varie per semplificare l’integrazione all’interno del progetto.

In questo momento il bundle non sembra gestire l’estensione Sortable ma non ho ancora verificato se si tratta di una carenza di documentazione o di una reale mancanza nell’implementazione dell’estensione.

Nei prossimi post spiegherò come configurare e utilizzare correttamente ognuna delle estensioni disponibili con il bundle.

2 thoughts on “Utilizzare le Estensioni di Doctrine in progetti symfony2”

  1. Quella che linki però è la documentazione delle extensions e non del Bundle.
    Il dubbio mi è venuto perchè nella doc del bundle invece https://github.com/stof/StofDoctrineExtensionsBundle/blob/master/Resources/doc/index.rst non si parla di Sortable, ma può essere tranquillamente questa doc a non essere aggiornata.

    Effettivamente verificando la classe di configurazione https://github.com/stof/StofDoctrineExtensionsBundle/blob/master/DependencyInjection/Configuration.php vedo che ci sono anche riferimenti a Sortable (il bundle non implementa niente per questa estensione, utilizza direttamente il listener standard).

    Correggo il post, grazie per la segnalazione.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>