Créer un projet
Utiliser l’outil Symfony CLI :
symfony new project_name --version=7.4 --webapp
Créera un dossier contenant l’application Symfony, qu’on pourra ouvrir dans son éditeur favori.
Lancer le serveur
Utiliser l’outil Symfony CLI :
symfony serve --no-tls
Lance le serveur, par défaut sur le port 8000. On peut alors accéder à l’application via le navigateur : http://localhost:8000
Créer une page (contrôleur)
Deux possibilités :
- Utiliser le
MakerBundleet sa commandephp bin/console make:controllerpour créer une classe de contrôleurs - Dans une classe de contrôleurs déjà existante, créer une nouvelle méthode qui deviendra un contrôleur avec un attribut
Route
Configurer une route (page)
Sur une méthode au sein d’une classe de contrôleurs, ajouter l’attribut Route :
#[Route('/mon-url', name: 'le_nom_de_la_route')]
public function monControleur(): Response
{}
Éditer un template Twig
Twig est un moteur de template. Tous les templates se trouvent dans templates/.
On construit donc l’apparence de nos pages dans les templates (layout du site).
Généralement, on aura un template “racine” dans templates/base.html.twig
Installer Bootstrap/Tailwind
- Bootstrap : on peut utiliser une commande de la console :
php bin/console importmap:require bootstrap
- TailwindCSS : on installera un bundle :
composer require symfonycasts/tailwind-bundle
Configurer l’accès à la BDD
Toujours dans le fichier .env.local, définir une variable d’environnement DATABASE_URL.
Créer la BDD
php bin/console doctrine:database:create
Créer une table (entité)
On utilisera le MakerBundle et sa commande :
php bin/console make:entity
Créer une migration
Une fois de plus, une commande du MakerBundle :
php bin/console make:migration
Exécuter une migration
php bin/console d:m:m
Installer le composant de fixtures
composer require --dev orm-fixtures
orm-fixturesest un alias Symfony Flex- Lors de l’installation de ce composant, une recette (recipe) Symfony Flex est automatiquement exécutée pour pré-configurer le composant : une classe PHP est créée dans
src/DataFixtures
Éditer des fixtures
Les fixtures se trouvent dans la classe App\DataFixtures\AppFixtures, donc si on suit la logique PSR-4, on trouvera les fixtures dans le fichier src/DataFixtures/AppFixtures.php.
Il faudra écrire ses fixtures dans la méthode load.
Exécuter des fixtures
Une fois les fixtures écrites, on pourra charger les données en BDD avec la commande :
php bin/console d:f:l
Créer une relation entre deux entités
On pourra repasser par le MakerBundle, et créer une propriété désignant l’entité cible.
Exemple :
- J’édite l’entité
Article - Je veux faire un lien vers
Category, afin qu’un article ait une catégorie - Je vais donc créer une propriété
category - Le type de cette propriété sera
ManyToOne
Concernant le type, séparer les différents types de relations par rapport au mot-clé To :
- Many / To / One
- One / To / Many
- etc…
Ensuite, on prend l’entité qu’on est en train d’éditer (ou bien celle dans laquelle on se trouve), et on l’insère à gauche du To. Exemple :
- Many Articles / To / One
Pour finir, on insère l’entité cible à droite du To :
- Many Articles / To / One Category