Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

sf_make_controller [01/11/2018 14:39] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Console de Symfony : make:​controller ======
 +===== Commande =====
 +
 +La commande ''​php bin/console make:​controller''​ créé la base d'un nouveau [[sf_controller|controller]] dans la structure du projet Symfony.
 +
 +<code shell>
 +thierry@obi103:/​var/​www/​html/​xxx/​yyy$ php bin/console make:​controller
 +
 + ​Choose a name for your controller class (e.g. FierceElephantController):​
 + > TestController
 +
 + ​created:​ src/​Controller/​TestController.php
 + ​created:​ templates/​test/​index.html.twig
 +
 +
 +  Success!
 +
 +
 + Next: Open your new controller class and add some pages!
 +</​code>​
 +===== Résultat =====
 +
 +Comme indiqué en réponse de la commande, il crée donc deux fichiers : 
 +==== Le Fichier Controller ====
 +
 +Le [[sf_controller|controller]] lui méme dans ''​src/​Controller/''​.
 +
 +On peut constater qu'il y associe aussi une [[annotation_route|route en Annotation]] ''​* @Route("/​test",​ name="​test"​)'' ​
 +<code php><?​php
 +
 +namespace App\Controller;​
 +
 +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;​
 +use Symfony\Component\Routing\Annotation\Route;​
 +
 +class TestController extends AbstractController
 +{
 +    /**
 +     * @Route("/​test",​ name="​test"​)
 +     */
 +    public function index()
 +    {
 +        return $this->​render('​test/​index.html.twig',​ [
 +            '​controller_name'​ => '​TestController',​
 +        ]);
 +    }
 +}</​code>​
 +==== Le Fichier Template ====
 + 
 +Le template [[twig]] dans ''​templates/​test/''​
 +<file twig>
 +{% extends '​base.html.twig'​ %}
 +
 +{% block title %}Hello {{:: controller_name }}!{% endblock %}
 +
 +{% block body %}
 +<​style>​
 +    .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
 +    .example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
 +</​style>​
 +
 +<div class="​example-wrapper">​
 +    <​h1>​Hello {{:: controller_name }}! ✅</​h1>​
 +
 +    This friendly message is coming from:
 +    <ul>
 +        <​li>​Your controller at <​code><​a href="​{{::​ '​src/​Controller/​TestController.php'​|file_link(0) }}">​src/​Controller/​TestController.php</​a></​code></​li>​
 +        <​li>​Your template at <​code><​a href="​{{::​ '​templates/​test/​index.html.twig'​|file_link(0) }}">​templates/​test/​index.html.twig</​a></​code></​li>​
 +    </ul>
 +</​div>​
 +{% endblock %}</​file>​
 +==== Résultat dans un navigateur ====
 +''​http://​obi103/​html/​xxx/​yyy/​public/​index.php/​test''​
 +
 +{{::​hellotestcontroller.jpg}}
  
  • Dernière modification: il y a 11 mois
  • (modification externe)