Utiliser les commandes Symfony sur un hébergement mutualisé

Publié le

Utiliser les commandes Symfony sur un hébergement mutualisé

1 - Introduction

Vous commencez à avoir l'habitude que je vous présente un bundle symfony qui simplifiera la gestion de votre projet. Aujourd'hui nous allons parler de CoreSphereConsoleBundle. Grâce à cet outil vous serez en mesure de gérer votre projet symfony depuis un hébergeur mutualisé qui n'offre pas d'accès SSH. Lorsque vous ouvrez votre terminal et entrez une commande PHP pour intervenir sur votre projet symfony, celle-ci est exécutée grâce à un fichier particulier. Cependant il est possible de substituer l'invite de commande par un script PHP indépendant qui exécutera nos commandes, depuis notre navigateur par exemple. Vous l'aurez compris, ce bundle vous fera gagner un temps précieux et substituera l'invite de commande au profit d'une interface web.

Quelques fonctions principales mises en avant par le bundle

  • Coloration syntaxique
  • Autocomplétion 
  • Historique de commande
  • Possibilité de vider le cache

2 - Installation, configuration et utilisation

On lance composer en lui indiquant le nom du bundle à installer

composer require coresphere/console-bundle

On enregistre le bundle dans notre kernel, mais cette fois-ci nous allons l'activer uniquement dans l'environnement de développement.

// app/AppKernel.php
public function registerBundles()
{
    $bundles = [
        // Vos autres bundles
    ];

    if (in_array($this->getEnvironment(), ['dev', 'test'])) {
        $bundles[] = new CoreSphere\ConsoleBundle\CoreSphereConsoleBundle();
    }

}

On ajoute les routes spécifiques dans le fichier de routing de l'environnement de développement.

# app/config/routing_dev.yml
coresphere_console:
    resource: .
    type: extra

On installe ensuite les éléments visuels grâce à cette commande.

php bin/console assets:install web

Vous êtes déjà prêts pour utiliser votre bundle, rendez-vous sur l'adresse /_console pour afficher la console.
Vous l'aviez remarqué, nous avons choisis d'activer le bundle uniquement dans un contexte de développement, c'est une mesure de sécurité évidente. Vous pouvez très bien activer ce bundle et lui donner la route que vous désirez en éditant les fichiers de configuration du mode production.