Académique Documents
Professionnel Documents
Culture Documents
Création application : symfony new Liste des routes du projet symfony console (cont)
LTS web my_project --version=lts -- liste toutes les php bin/console d:d:c Crée la db déclarée dans .env
webapp routes debug:router make:user Crée la table user associée à
Version 6.2 my_project --version‐ liste une route php bin/console l'authentification
web ="6.2.*" --webapp debug:router <nom make:e‐ Crée une table
LTS my_project --version=lts de la route> ntity
La dernière my_project liste l'enchain‐ php bin/console make:e‐ Généré les méthodes getter et
version ement des router:match <nom ntity -- setter manquantes
fonctions utilisées de la route> rege‐
la demo symfony new demo –demo
nerate
LTS signifie Long Time Support soit version Symfony
make:e‐ Regénére toutes les méthodes
supportée sur le long terme.
server:start -- lance le serveur en http ntity -- getter et setter
no-tls overwrite
Création inscription et connexion
server:ca:install pour un serveur en https make:m‐ Génère les fichiers de
symfony console
server:start -d en background igration migration
connexion (login) make:auth
server:stop stop le serveur (ctr c) doctrine:‐ Exécute les fichiers de
Inscription make:registration-
migration‐ migration
console about information version du
(register) form
s:migrate
projet
make:user
m:mig Génère les fichiers de
check:requir‐ valide l'environnement
Créer les formulaires pour l'inscription et la migration
ements
connexion des utilisateurs ainsi que le d:m:m Exécute les fichiers de
contrôleur user adapté migration
symfony console
cheatography.com/agarciadutaitre/
Les commandes Symfony Cheat Sheet
by AGD (agarciadutaitre) via cheatography.com/174798/cs/36722/
symfony console (cont) Exemples de déclaration de route Exemples de déclaration de route (cont)
debug:container Liste les services #[Route('/api/posts/{id}', methods: ['GET', public function check(Request $request):
disponibles pour 'HEAD'])] bool
l'application #[Route( '/contact', name: 'contact', {
dbal:run-sql interroge la base de condition: "context.getMethod() in ['GET', // ...
'SELECT * FROM données 'HEAD'] and request.headers.get('User-A‐ }
product' gent') matches '/firefox/i'", }
// expressions can also include config
Les fichiers de migrations sont nommés
parameters: php
migrations\Versiondateheure.php et ils
// condition: "request.headers.get('User-A‐
contiennent les ordres sql qui vont modifier -m liste les modules php installés
gent') matches '%app.allowed_browser‐
la base
s%'"
Composer require
)]
php bin/console https://packagi‐ Liste des packages
#[Route(
server:dum ?? st.org/packa‐ dispo sur composer
'/posts/{id}',
p ges/symfony/
name: 'post_show',
server:log // expressions can retrieve route parameter symfony/orm-pack Installe Doctrine
values using the "params" variable --dev symfony/m‐ Installe le Maker
list liste les commandes de
condition: "params['id'] < 1000" aker-bundle
console
)]
list make liste les commandes du symfony/validator Les contraintes de
// Controller (using an alias):
maker validation pour Forms
#[Route( '/posts/{id}', name: 'post_show',
et DB
condition: "service('route_checker').check‐
Contrôleur symfony/http-fo‐ installe session
(request)")]
undation
Créer un php bin/console make:cont‐ use Symfony\Bundle\FrameworkBundle‐
contrôleur roller nom_du_controleur \Routing\Attribute\AsRoutingConditionSe‐ symfony/form Installe les formul‐
rvice; aires
symfony console make:cont‐
roller nom_du_controleur use Symfony\Component\HttpFoundation‐
\Request; Usage des annotations pour les routes
cheatography.com/agarciadutaitre/
Les commandes Symfony Cheat Sheet
by AGD (agarciadutaitre) via cheatography.com/174798/cs/36722/
Création route annotation Option pour les routes Création d'un contrôleur en lien avec la
base (cont)
<?php name="routeName" Donner un nom à
namespace App\Controller; une Route > public function createProduct(Mana‐
use Symfony\Component\Htt‐ methods={"method1", retreindre l'accès gerRegistry $doctrine): Response
pFoundation\Response; "method2"} au requête HTTP {
use Symfony\Component\Rou‐ de type $entityManager = $doctrine->getMana‐
ting\Annotation\Route; ger();
Type de requête HTTP GET,POST,‐
$product = new Product();
class NomDuControleurCon‐ DEL,PUT,HEAD
$product->setName('Keyboard');
troller { etc
$product->setPrice(1999);
/** host="nom ou IP du retreindre l'accès
$product->setDescription('Ergonomic
* @Route( host" à un host en
and stylish!');
* "/chemin_de_url/‐ particulier
// tell Doctrine you want to (eventually)
{param1}}", requirements={"para‐ appliquer des save the Product (no queries yet)
* name="nom_de_la_rou‐ m1":"regexp1", "par‐ règles aux $entityManager->persist($product);
te", am2":"regexp2"} paramètres // actually executes the queries (i.e. the
* methods={"GET", "‐ INSERT query)
defaults={"param1":"d‐ Valeur par
POST","HEAD","PUT",etc}, efault1", "param2":"de‐ defaults des $entityManager->flush();
* requirements={"para‐ fault2"} paramètres return new Response('Saved new
m1":"regexpVoulue" }, product with id '.$product->getId());
* defaults={"param‐ Création d'un contrôleur en lien avec la }
1":"ValeurParDefaut"} base }
* host="my.host" Tester le contrôleur avec : http://localhost:8‐
//
* schemes={"http", "‐
src/Controller/ProductController.php 000/product
https"}
namespace App\Controller; Vérifier la base de donnée : php bin/console
* priority=1
// ... dbal:run-sql 'SELECT * FROM product'
* ) https://symfony.com/doc/current/doctrine.h‐
use App\Entity\Product;
*/ tml#migrations-creating-the-database-table‐
use Doctrine\Persistence‐
public function nomTraite‐ s-schema
\ManagerRegistry;
ment($param1 ): Response {
use Symfony\Component\HttpFo‐
// ...
undation\Response;
use Symfony\Component\Routin‐
return $this->render('nom‐
g\Annotation\Route;
_rep_template/nom_du_tem‐
class ProductController extends
plate.html.twig', [
AbstractController
'no‐
{
mDuParametre' => $valeur_d‐
#[Route('/product',
u_parametre,
name: 'create_product')]
'param1' $param1,
]);
}
}
cheatography.com/agarciadutaitre/