Development

Documentation/fr_FR/book/trunk/cli

You must first sign up to be able to contribute.

Version 2 (modified by clochix, 11 years ago)
--

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:

[1]: http://www.pake-project.org/ "Pake"

[2]: http://rake.rubyforge.org/ "Rake"

[3]: http://nanoserv.si.kz/ "Nanoserv"