Accueil / Blog / Métier / 2018 / Comment démarrer un projet Symfony 4 en 5 minutes

Comment démarrer un projet Symfony 4 en 5 minutes

Par Simon Georges publié 24/05/2018
Les nouveautés Symfony 4 permettent de démarrer un projet vraiment simplement.
Comment démarrer un projet Symfony 4 en 5 minutes

À l'occasion de la sortie de la version 4 du plus connu des frameworks PHP, Symfony s'est offert un petit lifting, en repensant complètement sa façon de gérer des applications.

L'idée principale est d'utiliser au maximum Composer (le principal gestionnaire de dépendances de la communauté PHP) pour gérer l'application, notamment au lancement.

Flex et le squelette

Symfony Flex est une surcouche à Composer permettant d'exécuter des tâches sur certaines commandes Composer (require, update et remove). Il est utilisable depuis la version 3.3 de Symfony mais devient désormais (depuis la version 4) la façon recommandée de gérer un projet Symfony.

Il est possible de définir des recettes (Recipes) pour ces comportements spécifiques. Ces recettes sont listées sur le site Symfony Recipes et sont disponibles sur le dépôt Symfony pour les recettes officielles ou ce dépôt de recettes additionnelles fournies par la communauté.

Pour tout savoir sur Flex, vous pouvez consulter la présentation donnée par Fabien Potencier (créateur de Symfony) lors de la SymfonyCon, mais si vous êtes pressés (j'ai dit 5 minutes, après tout, il vous suffit de continuer l'article).

Pour créer notre projet projet, utilisons donc Composer :

composer create-project symfony/skeleton demo
cd demo

Nos premiers bundles

Flex contient notamment, pour certaines fonctionnalités, LA bonne solution (du moins la solution recommandée par la communauté) pour implémenter cette fonctionnalité. Du coup, plutôt que comparer les différents bundles qui existent pour implémenter une fonctionnalité, l'idée est désormais de suivre les recettes de la communauté.

Par exemple, dans notre application, nous savons que nous aurons besoin d'une gestion de la base de données, d'une interface d'administration de ces données, et d'une API (après tout, quelle application web moderne n'a pas d'API ?).

En utilisant Flex, l'installation de ces composants se fait en une ligne :

composer req orm admin api

La partie "récupération des bundles communautaires" est terminée, notre application contient déjà tous les composants nécessaires, nous allons commencer le développement.

Et puisque nous allons générer le maximum de code possible automatiquement, nous rajoutons l'installation de la console Symfony (dans sa dernière version) :

composer req maker:dev-master

Notre première entité

Puisque nous utilisons un framework tel que Symfony, c'est à priori pour réaliser une application métier. Nous devons donc commencer la modélisation de nos données.

Pour aller plus vite, nous allons générer une grosse partie du code en utilisant la console que nous venons d'installer :

./bin/console make:entity Product

La base de données

Il nous reste naturellement à configurer l'accès à la base de données :

vim .env

DATABASE_URL=mysql://username:password@127.0.0.1:3306/db_name

Puis à créer cette même base et le schéma correspondant à notre produit :

./bin/console doctrine:database:create
./bin/console doctrine:schema:update --force

Et voilà…

Il nous reste à activer l'administration de nos produits en modifiant le fichier de configuration de notre bundle d'interface :

vim config/packages/easy_admin.yml

easy_admin:
    entities:
        - App\Entity\Product

Et dès le lancement du serveur web…

php -S 127.0.0.1:8001 -t public

… nous obtenons un back-office responsive :

EasyAdmin - Product - Desktop

EasyAdmin - Product

Résolution de problèmes

Pour utiliser les recettes qui ne sont pas mises en avant par la core team Symfony, il faut modifier un paramètre de votre application (mais vous avez pu constater que ce n'était pas nécessaire pour cet article, nous n'avons utilisé que des recettes officielles) :

composer config extra.symfony.allow-contrib true

À vous de jouer !

5 minutes, comme promis. À vos développements, maintenant !

ABONNEZ-VOUS À LA NEWSLETTER !
Voir aussi
Le framework Symfony, un choix réfléchi 05/10/2016

Alliant souplesse, performance et efficacité, Symfony devient un incontournable dans nos ...

Utiliser des bundles Symfony dans Drupal 7 Utiliser des bundles Symfony dans Drupal 7 19/12/2016

Notre module Drupal Symfony DIC permet d'apporter la puissance de Symfony, dans Drupal, ...

Utiliser le DIC de Symfony dans Drupal 7 Utiliser le DIC de Symfony dans Drupal 7 14/12/2016

Afin de préparer la compatibilité vers Drupal 8, il est possible de créer des composants avec le ...