Synfony2 – créer un bundle
janvier 6, 2015 11:05 Laissez vos commentairesUn 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) :
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
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:
- Attention les retraits se font avec 4 espaces et non avec une tabulation (Identation yml) ↩
Classés dans :Symfony
Cet article a été écrit par admin