Ingénieur IT, photographe amateur, musicien du dimanche
Commandes courantes pour symfony
Commandes courantes pour symfony

Commandes courantes pour symfony

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *