Introduction
Symfony est un framework php qui s’utilise beaucoup en ligne de commande. Il permet de créer facilement un site en ayant presque pas écrit une ligne de code. Le site officiel www.symfony-project.org et son tutoriel étant très bien conçus, je vous laisserais le visiter si vous voulez en savoir plus.N’utilisant pas symfony tous les jours, je dois souvent aller farfouiller dans le tutoriel « jobeet » pour retrouver les commandes que j’ai oublié. C’est pourquoi voici un pense-bête pour une rapide mise en place d’un projet symfony avec doctrine, pour ceux qui connaissent déjà le framework.
Mise en place du framework
Pour les points suivants, les commandes concernent Linux. Sous MS-Windows, toute la partie mise en place devrait être faisable depuis l’explorateur de fichier.
1. Tous d’abord créez un dossier dans lequel sera contenu le projet. Ensuite créez le dossier « lib/vendor » (bonne pratique) qui contiendra les fichiers du framework:
$ mkdir -p lib/vendor
2. Décompressez l’archive du framework (téléchargeable sur le site de symfony) dans ce nouveau dossier.
$ cd lib/vendor $ tar zxpf symfony-1.4.0.tgz
3. Renommez le dossier et supprimez l’archive (facultatif)
$ mv symfony-1.4.0 symfony $ rm symfony-1.4.0.tgz
4. Retournez dans le dossier du projet
$ cd ../..
Commandes utiles
A nouveau, les commandes suivantes sont pour Linux. Pour MS-Windows, utilisez des backslash « \ » au lieu des slash « / ». Faite également attention à la casse des lettres pour les noms de projet, modules,…
Générer le projet
Générez un nouveau projet symfony $ php lib/vendor/symfony/data/bin/symfony generate:project nom_du_projet
puis changez les droits sur les dossiers où symfony écrira :$ chmod 777 cache/ log/
A présent, les commandes peuvent être lancée en remplaçant simplement le path par le préfixe « symfony » :
$ php lib/vendor/symfony/data/bin/symfony commande_a_executer #devient : $ php symfony commande_a_executer #ou encore : $ ./symfony commande_a_executer
Sous windows, pour que cette dernière étape fonctionne, il faut copier le fichier ‘symfony.bat’ vers votre projet et utiliser ‘symfony’ à la place de ‘php symfony’.
Commandes de création
Créer l’application frontend $ php symfony generate:app frontend
Créer l’application backend
Configuration de la DB pour SF $ php symfony configure:database "mysql:host=localhost;dbname=nom_de_la_db" username password
Génération du code SQL $ php symfony doctrine:build --sql
Création des tables à partir du SQL $ php symfony doctrine:insert-sql
Construction des modèles à partir du schéma $ php symfony doctrine:build --model
Construction des formulaires $ php symfony doctrine:build --forms
Chargement des données à partir des fixtures $ php symfony doctrine:data-load
Ou tout en en 1, construction du sql, des tables et des modèles à partir du schéma$ php symfony doctrine:build --all --no-confirmation
Génération d’un module pour un modèle donné dans une application existante (frontend / backend) $ php symfony doctrine:generate-module --with-show --non-verbose-templates nom_d_application nom_du_module Nom_du_model
Une commande simple et très utile est le clear-cache qui comme son nom l’indique, vide le cache symfony. Cela résout bien souvent des bugs incompréhensibles… $ php symfony cc
Commandes d’informations
Lister les routes existantes dans une application $ php symfony app:routes frontend
Information de débogage sur une route précise $ php symfony app:routes frontend route_name
Commandes de testes
Lancer tous les tests unitaires du projet $ php symfony test:unit
Lancer un test unitaire pour une classe précise $ php symfony test:unit Classe_name
Lancer tous les tests fonctionnels d’une application $ php symfony test:functional frontend
Lancer un test fonctionnel pour une classe précise d’une application (frontend / backend)$ php symfony test:functional application_name Classe_name