Synfony2 – créer un bundle

janvier 6, 2015 11:05 Publié par Laissez vos commentaires

Un Bundle est un répertoire dans lequel sont encapsulés diverses ressources telles que les contrôleurs ou les classes.

Génération du nouveau Bundle :

Placez vous dans le dossier Symfony puis lancez la commande suivante :

php app/console generate:bundle

Le nom doit se terminer par {Bundle}

Bundle espacement : tuto/HelloBundle
Whole directory : yes

Répondez oui par défaut aux questions suivantes puis choisissez le format de configuration (yml dans notre cas).

Faîtes le test sur l’url :
http://localhost/app_dev.php/hello/tuto
==> Hello tuto!

Vous pouvez pouvez remplacer « tuto » (le namespace) par la valeur que vous désirez, il suffit de conserver la syntaxe Namespace/Nom/Bundle. Le bundle est généré dans le répertoire src et commence par le nom de son namespace :{ tuto}.

Le bundle est automatiquement chargé dans le fichier app/AppKernel.php et le code dans l’emplacement défini lors de la création (src/ par défaut).
Vous pouvez vérifiez sa présence dans l’onglet config de la page Profiler (Active Bundles) :

tutodidacte symfony3.png

Configuration du routeur :

Nous allons renseigner le chemin {/hello-world-test} ainsi qu’un nouveau contrôleur nommé {Hello} 1:

nano src/tuto/HelloBundle/Resources/config/routing.yml

tuto_hello_test:
path: /hello-world-test
defaults: { _controller: tutoHelloBundle:Hello:index }

L’emplacement du fichier routing.yml est indiqué dans le le fichier de configuration de base routing.yml du dossier app:

 nano app/config/routing.yml


tuto_hello_test:
resource: "@tutoHelloBundle/Resources/config/routing.yml"
prefix: /

Création d’un contrôleur:

Nous allons à présent créer le contrôleur {{Hello}} :
Emplacement du contrôleur dans le Bundle : HelloBundle/Controller
Création d’un nouveau contrôleur:
nano HelloController.php

Testons maintenant l'url http://serveur/app_dev.php/hello-world-test
Résultat : {{Tuto Hello World !}}

Création d'un template

Emplacement des templates : /src/tuto/HelloBundle/Resources/views
Noyus allons créer le répertoire correspondant à notre contrôleur {Hello}

mkdir Hello

Création du fichier .html ou .html.twig:

nano index.html.twig




Page de Tuto Symfony

Tuto Symfony


Modifions à présent notre contrôleur {Hello} afin qu'il charger le template index.html.twig :src/tuto/HelloBundle/Controller/HelloController.php

get('templating')->render('tutoHelloBundle:Hello:index.html.twig');
return new Response($content);
}
}

Testez l'URL et le code html du template doit s'exécuter! enfin j'espère 😉

A++

PS : en cas de problèmes, pensez à vider le cache :

php app/console cache:clear --env=prod --no-debug

Notes:

  1. Attention les retraits se font avec 4 espaces et non avec une tabulation (Identation yml)

Classés dans :

Cet article a été écrit par admin

Laisser un commentaire