PHP et ses extensions
Composer
MySQL
Comprendre les échanges client/serveur
symfony check:requirements
symfony new my_project
my_project/
.
├── bin/ # Fichiers exécutables
├── config/ # Configuration des services et des packages
├── public/ # Racine web
├── src/ # Code source PHP (contrôleurs, entités, etc.)
├── var/ # Fichiers temporaires (logs, cache, etc.)
├── vendor/ # Dépendances gérées par Composer
├── .env # Variables d'environnement
├── composer.json # Dépendances du projet
├── symfony.lock # Verrouillage des versions des packages
symfony server:start
# ou
symfony serve
Installer le bundle Maker pour générer du code
composer require symfony/maker-bundle --dev
Tous les bundles Symfony sont disponibles sur la documentation officielle.
php bin/console make:controller
# ou
symfony console make:controller
Le contrôleur répond aux requêtes HTTP en renvoyant des réponses appropriées (HTML, JSON, etc.).
On pourrais faire ça
Ou encore ça
Mais on vas plutôt utiliser Twig pour générer nos réponses HTML.
Twig est un moteur de templates pour PHP qui permet de séparer la logique de présentation de la logique métier.
C'est un bundle donc il faut l'installer avec Composer.
composer require symfony/twig-bundle
my_project/
.
├── ...
├── src/
├── templates/ # Fichiers de templates Twig
├── var/
├── ...
Supprimer l'ancien controlleur et recommencer maintenant qu'on a Twig
Grâce à la méthode render on peut passer des variables à notre template Twig.
{% ... %} # syntaxe pour les blocs Twig.{{ ... }} # syntaxe pour afficher des variables.
{% if condition %}
...
{% elseif autre_condition %}
...
{% else %}
...
{% endif %}
{% if app.user %}
Bienvenue {{ app.user.name }}
{% else %}
Veuillez vous connecter.
{% endif %}
{% for item in items %}
...
{% else %}
...
{% endfor %}
{% for product in products %}
{{ product.name }}
{% else %}
Aucun élément trouvé.
{% endfor %}