Créer un projet web avec Symfony

Created with Sketch.

Créer un projet web avec Symfony

Créer le projet et l’arborescence MVC Symfony

Ouvrir le dossier contenant les projets via l’invité de commande. Ex: htdocs dans le cas de développement en local avec LAMPP pour LINUX. Le serveur local lampp doit être démarrer avant de passer à la suite. Le CLI symfony doit également être installé au préalable. https://symfony.com/doc/current/index.html
cd /opt/lampp/htdocs/projets

Puis initialiser le projet.

composer create-project symfony/website-skeleton monProjet

Maintenant il faut se déplacer dans le projet.

cd monProjet

En ouvrant le projet dans sont IDE favori on doit obtenir cette arborescence si tout c’est bien passé.

Il faut maintenant configurer la connexion à la base de données, pour cela il faut modifier le fichier .env.
Pour ma part, étant sous mariadb-10.4.19 en local et sans mot de passe de connexion, la ligne adaptée serait :

DATABASE_URL="mysql://root:@127.0.0.1:3306/monProjet?serverVersion=mariadb-10.4.19"
Naturellement les autres lignes DATABASE_URL doivent être commentées à l’aide de « # » en début de ligne. Pensez à remplacer « monProjet » par le nom de votre projet. Maintenant que le connexion est établie il suffit d’entrer la commande suivante dans l’invité de commande, sans oublier de bien être dans le dossier du projet.
symfony console doctrine:database:create

Maintenant que tout est initialisé, lancez le serveur symfony avec la commande:

symfony serve

Si tout c’est bien passé, le serveur se lance et le projet est fonctionnel à l’url mentionné dans l’invité de commande.

On peux maintenant créer un premier contrôleur afin d’éditer une page d’accueil. Dans mon cas je décide de l’appeler HomeController, pour ce faire entrez la commande.

symfony console make:controller HomeController

Ce premier contrôleur maintenant créé, il est disponible dans src/controller/HomeController et ce présente comme suit:

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class HomeController extends AbstractController
{
    /**
     * @Route("/home", name="home")
     */
    public function index(): Response
    {
        return $this->render('home/index.html.twig', [
            'controller_name' => 'HomeController',
        ]);
    }
}

Là création de ce contrôleur est accompagnée de la création d’un rendu qui est disponible dans templates/home/index.html.twig.
Ce rendu est actuellement disponible depuis https://127.0.0.1:8000/home. Dans le cas présent, étant donné que je souhaite avoir ce rendu en page d’accueil et donc première page visée dés l’arrivé sur le site, la route doit être modifiée comme suit:

Remplacez
/**
* @Route("/home", name="home")
*/
par
/**
* @Route("/", name="home")
*/

La réécriture de cette route aura pour effet de rende le template home directement disponible depuis https://127.0.0.1:8000 et non https://127.0.0.1:8000/home

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *