Desenvolupament d'Aplicacions

Què són els Bundles de Symfony?

Un dels punts forts de Symfony és la seva escalabilitat. Permet segmentar el codi en bundles perquè el projecte pugui continuar creixent. Amb un Bundle encapsulem una o diverses funcionalitats.

Què són els Bundles de Symfony?

Què és un bundle?

Un Bundle és un paquet que pot contenir qualsevol cosa:

  • Codi de programació
  • Fitxers de configuració
  • Plantilles
  • CSS, JavaScript

El contingut del bundle conforma una subaplicació dintre de la nostra aplicació (en definitiva és un plugin). Per exemple, es pot crear un blog a un bundle, i allà que contingui tots els fitxers necessaris per executar-lo (controladors, plantilles, fitxers css, fitxers js, ...).

La nostra aplicació en Symfony pot estar tota continguda a un bundle o a diversos.

Com és l'estructura de Symfony?

Abans d'explicar com es crea un Bundle hem de conèixer l'estructura d'un projecte Symfony que està formada pels següents directoris:

  • app/: conté la configuració de l'aplicació.
  • src/: aquí es troba tot el codi PHP de l'aplicació. És el directori on per defecte tindrem els Bundles.
  • vendor/: per convenció aquí es guarden totes les llibreries creades per tercers. En principi, és un directori que no hem de tocar.
  • web/: aquest és el directori web arrel i conté tots els arxius als que es pot accedir públicament.

Com crear un Bundle a Symfony?

Suposem que volem crear un bundle per gestionar usuaris. El crearem al directori src/Daw/UserBundle (el namespace ha d'acabar sempre per Bundle). Per tant, des de la terminal ubicada al directori del nostre projecte escribim la següent comanda:

$ php app/console generate:bundle --namespace=Daw/UserBundle  

Ens farà una sèrie de preguntes que deixarem per defecte, excepte la de format de configuració on indicarem “yml”.

Amb això el Bundle quedarà registrat a la nostra aplicació. Dintre de src/Daw/UserBundle tindrem el Bundle que acabem de crear.

Per verificar que s'ha creat correctament podem seguir dos pasos:

  • Verificar el fitxer app/AppKernel: on s'haurà generat una nova posició de l'array $bundles.
  • Verificar config/routing.yml: on es farà una importació del fitxer routing.yml del nostre bundle.

 

Comparteix aquest article

Articles Relacionats