Cette partie de la documentation est en cours de traduction. Cela signifie qu'elle est traduite de manière soit incomplète, soit inexacte. En attendant que cette traduction soit terminée, vous pouvez consulter la version en anglais pour des informations plus fiables.
l'interface en ligne de commande
Introduction
L'interface en ligne de commande de symfony (CLI) permet d'exécuter de nombreuses tâches utiles lors du développement et de la maintenance d'une application web.
Pake
Pour les tâches courantes, Symfony utilise un Pake, un utilitaire PHP similaire à Rake en Ruby, et équivalent à la commande make. Il permet d'automatiser des tâches d'administration. Pake utilise un fichier de configuration, pakefile.php. Dans Symfony, Pake est appelé en tapant simplement symfony en ligne de commande.
Il est à noter que l'interface en ligne de commande ne fonctionnera qu'appelée depuis le répertoire racine du projet racine.
Les commandes de base
$ symfony -V
Retourne la version de symfony
$ symfony
Retourne la liste de toutes les tâche disponibles.
La commande symfony prend en paramètre un nom de tâche, celle-ci pouvant nécessiter des options supplémentaires. Le modèle de syntaxe est
$ symfony [options] <TACHE> [paramètres]
Certaines tâches peuvent également être appelées via un raccourcis. Par exemple
$ symfony cc
// a le même effet que
$ symfony clear-cache
En cas d'erreur à l'exécution de la têche, vous pouvez utiliser l'option -t pour obtenir plus de détails et la pile des appels.
Les tâches
Générer la structure du projet
$ symfony init-project <PROJECT_NAME>
Initialise un nouveau projet symfony (raccourcis: new)
$ symfony init-app <APPLICATION_NAME>
Initialise une nouvelle application (raccourcis: app)
$ symfony init-module <APPLICATION_NAME> <MODULE_NAME>
Initialise un nouveau module (raccourcis: module)
$ symfony init-batch <SKELETON_NAME> [...]
Initialise un nouveau traitement batch (raccourcis: batch). Il faut choisir le squelette à utiliser et suivre les instructions.
$ symfony init-controller <APPLICATION_NAME> <ENVIRONMENT_NAME> [<SCRIPT_NAME>] [true|false]
Initialise un nouveau contrôleur (raccourcis: controller). Le nom du script par défaut doit respecter les conventions de nommage de symfony.
Vous trouverez plus de détail sur ces commandes dans le chapitre sur la création de projets.
Générer le modèle
$ symfony propel-build-model
Crée les classes Propel à partir des fichiers schema (YAML ou XML) du répertoire config/.
Les paramètres de connection utilisés par les commandes suivantes sont extraits du fichier de configuration config/propel.ini.
$ symfony propel-build-sql
Génère dans le fichier data/schema.sql les instructions SQL pour créer les tables décrites dans schema.yml.
$ symfony propel-build-db
Crée une nouvelle base de données à partir des informations de connection.
$ symfony propel-insert-sql
Exécute les instructions du fichier data/schema.sql pour créer les tables dans la base.
$ symfony propel-build-all
Exécute successivement propel-build-model, propel-build-sql et propel-insert-sql.
$ symfony propel-load-data <APPLICATION_NAME> [<ENVIRONMENT_NAME>] [<FIXTURES_DIR_OR_FILE>]
Charge les données dans les tables. Si aucun fichier ou répertoire n'est indiqué, les données seront chargées à partir des fichiers contenus dans data/fixtures/. L'environnement par défaut est dev. Le chemin du répertoire contenant les données à charger est relatif au répertoire data du projet, par exemple fixtures (par defaut) ou testdata ou juste un fichier : fixtures/file.yml.
$ symfony propel-build-all-load <APPLICATION_NAME> [<ENVIRONMENT_NAME>] [<FIXTURES_DIR_OR_FILE>]
Exécute successivement propel-build-all puis propel-load-data. Les arguments sont les mêmes que pour propel-load-data.
$ symfony propel-build-schema
Crée un fichier schema.yml à partir d'une base de données existante.
$ symfony propel-build-schema xml
Crée un fichier schema.xml à partir d'une base de données existante.
Vous trouverez plus d'information sur ces commandes dans le chapitre sur le modèle de données.
Les outils de développement
$ symfony clear-cache [<APPLICATION_NAME>] [template|config]
Efface toutes des informations du cache (raccourcis: cc). Plus de détails dans le chapitre sur le cache.
$ symfony clear-controllers
Efface tous les contrôleurs à part ceux utilisés dans l'environnement de production. Une commande utile par exemple avant un déploiement en production.
$ symfony fix-perms
Corrige si nécessaire les droits des répertoires dans lesquels le serveur web doit pouvoir écrire. Les droits peuvent être incorrects après un checkout depuis Subversion.
$ symfony test <APPLICATION_NAME>
Exécute les scénarios de test d'une application (pour en savoir plus reportez-vous au chapitre sur les tests unitaires).
$ symfony freeze
$ symfony unfreeze
Copie toutes les bibliothèques symfony requises dans les répertoires data/, lib/ et web/sf/ du projet, afin que celui-ci devienne une sorte de bac à sable, c'est à dire une application autonome sans dépendance et prête à être transférée en production. Cette méthode fonctionne aussi bien avec l'installation via PEAR qu'avec des liens symboliques. L'effet inverse est obtenu au moyen de la tâche unfreeze.
$ symfony sync <ENVIRONMENT_NAME> [go]
Synchronise le projet avec une autre machine (plus de détails dans le chapitre sur le déploiement).
Administration d'un projet
$ symfony disable <APPLICATION_NAME> <ENVIRONMENT_NAME>
Transfert l'utiliastion vers le module et l'action "non disponible" défini dans le fichier settings.yml. Le comportement est similaire à celui obtenu en positionnant le paramètre non disponible dans le fichier settings.yml, avec l'avantage de pouvoir rendre non disponible seulement une application dans un environnement, et non tout le projet.
$ symfony enable <APPLICATION_NAME> <ENVIRONMENT_NAME>
Autorise à nouveau l'accès à l'application et vide le cache.
$ symfony purge-logs
Efface les fichiers de logs dans le répertoire de trace pour les applications et les environnements pour lesquels le fichier logging.yml contient purge: on (ce qui est la valeur par défaut).
$ symfony rotate-log <APPLICATION_NAME> <ENVIRONMENT_NAME>
Force la rotation d'un fichier de log si le paramètre rotate est à on dans le fichier logging.yml. Les paramètres de ratation sont period (durée de vie en jour d'un fichier avant sa rotation), et history (le nombre de fichiers d'archive à conserver). Voici un exemple de configuration de la rotation dans le fichier logging.yml :
prod:
rotate: on
period: 7 ## Log files are rotated every 7 days by default
history: 10 ## A maximum history of 10 log files is kepts
Génération de l'administration et des échafaudages
$ symfony propel-generate-crud <APPLICATION_NAME> <MODULE_NAME> <CLASS_NAME>
$ symfony propel-init-crud <APPLICATION_NAME> <MODULE_NAME> <CLASS_NAME>
Crée un nouveau module Propel de CRUD (création, lecture, mise à jour et suppression d'un objet) à partir d'une classe du modèle. propel-generate-crud copie le code du framework dans un nouveau module, alors que propel-init-crud crée un module vide qui hérite de celui du framework. Dans ce cas, le code généré n'est visible que dans le cache, dans le répertoire cache/ (les actions et les templates générés héritent du framework).
$ symfony propel-init-admin <APPLICATION_NAME> <MODULE_NAME> <CLASS_NAME>
Crée un nouveau module propel d'administration basé sur une classe du modèle.
Pour en savoir plus sur ces tâche, reportez-vous aux chapitres sur le générateur d'échafaudages et d'administration.
Gestion des Plugin
$ symfony plugin-install [local|global] <CHANNEL_NAME>/<PLUGIN_NAME>
Installe un nouveau plugin.
$ symfony plugin-upgrade [local|global] <CHANNEL_NAME>/<PLUGIN_NAME>
Met à jour un plugin existant.
$ symfony plugin-upgrade-all
Met à jour tous les plugins installés.
$ symfony plugin-uninstall [local|global] <CHANNEL_NAME>/<PLUGIN_NAME>
Supprime un plugin.
La création, l'installation et la gestion des plugins sont décrits dans le chapitre sur les plugins.
La complétion automatique
Le wiki de symfony propose des fichiers fournis par des utilisateurs pour permettre la complétion automatique des commandes symfony dans certains interpréteurs de commandes:
- [Bash completion](http://www.symfony-project.com/trac/wiki/BashCompletion)
- [Zsh completion](http://www.symfony-project.com/trac/wiki/ZshCompletion)
[1]: http://www.pake-project.org/ "Pake"
[2]: http://rake.rubyforge.org/ "Rake"
[3]: http://nanoserv.si.kz/ "Nanoserv"