IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

ConsoleBundle : la console depuis l'application


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut ConsoleBundle : la console depuis l'application
    Coucou tout le monde,

    Je vous partage ma première petite contribution, utile ou pas.

    https://github.com/RapotOR/ConsoleBundle

    Ce bundle vous permet d’exécuter des commandes Symfony2 directement à partir de votre application.
    Une icone 'console' est disponible dans le coin supérieur droit. Un click dessus vous affiche une petite console où il vous sera possible de lancer vos commandes Symfony2.

    Au lieu d'utiliser, par exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php app/console router:debug
    il vous suffira de taper uniquement

    Il y a encore pas mal d'amélioration possible; j'ai quelques idées.
    Ce bundle est la première brique d'une application que j'aimerais lancer visant, dans un premier temps, à aider les développeurs débutants sur Symfony2. Je ne suis pas contre un peu d'aide, notamment pour les tests avec lesquels je ne suis pas encore très familier.

    Vos avis et critiques sont les bienvenus.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    Par défaut
    Ca a l'air vachement intéressant, je testerai cela lundi...

    Merci

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    ! Ça promet de m'être bien utile, vu que l'application que je fais pour le moment avec Sf2 va être déployée au final sur un environnement où il n'y a qu'un accès FTP (vdm).

    Dans les améliorations, tu pourrais aussi envisager qu'un clic sur ce bouton ouvre un panneau affichant toutes les commandes disponibles, en plus d'un champ pour entrer directement celle que l'on veut exécuter.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    Oui; ou noter qu'il faut taper "list" ou "." .

    J'envisage même d'y ajouter une autocompletion. Non seulement pour taper "ro" qui proposerait "router" mais également en tapant "router:" qui proposerait "dump-apache" et "debug".

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Pas mal bonne idée comme bundle !
    Je testerai quand la beta2 sera sortie, parce qu'il est pas compatible avec la beta1 (enfin j'imagine, j'ai une erreur pour un argument de Process qui vaut null au lieu de array).

    Par contre je comprends pas pourquoi tu limites l'affichage de la console à une toolbar ? Ca m'intéresserait de l'avoir dans un onglet séparé, une vraie page accessible.

    En tout cas bon boulot (enfin j'imagine, toujours pas testé :p)

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    Ah je ne sais pas pour la beta1. Je programme avec la version master; directement.

    En fait, je veux le mettre en toolbar pour l'application dans un premier temps, en tant que bundle "debug".
    Ensuite, je veux faire une application complète qui comprendra aussi la console. On pourra alors accéder aux consoles de toutes nos applications... pas seulement "app".

    J'ai déjà pas mal avancé sur mon application; je vous dévoile tout cela très vite!

  7. #7
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Dans ce qu'il me manquerait dans ce bundle : avoir une notification que la commande est en cours. Actuellement, si on fait un clear:cache, on voit que ça tourne pendant un certain temps... Alors, ça fait quelque chose ou pas ?

    Quand il y a une erreur, ça affiche simplement un

    The process wasnt successfull...
    dont l'utilité me paraît fort claire . En passant, wasn't. Ou alors was not.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    @dourouc05 :

    - Très bonne idée! aussitôt proposé, aussitôt réalisé! Un message "in progress..." s'affiche maintenant jusqu'à ce que la commande soit terminée.

    - was not, tout à fait! Je suis en mode ultra raccourci

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    !

    Encore une amélioration : prévenir quand le traitement est fini. Par exemple, remettre un $ dans la console.

    Aussi, autocomplétion... des paramètres ? C'est-à-dire, pour chaque commande possible, afficher les paramètres que l'on peut mettre, les requis, etc.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  10. #10
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Je viens de remarquer que tu as ajouté une typo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new Response('The command "'.$sf2Command.'" was not successfull.' , 200); // set to 200 to allow console display
    C'est successful, évidemment. Sinon, pas d'option pour tout traduire ? Ça pourrait être bien, même si tu ne proposes que l'anglais par défaut.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    L'autocomplétion des paramètres est effectivement une autre très bonne idée; je note!

    Concernant la fin de la commande, il y a d'office un message. Soit c est le message du bundle, soit c'est le message de succès de la commande (comme pour le cache:clear qui ne renvoit rien).

    Enfin, la traduction des messages est aussi une chose a implémenter... surtout pour l'utilisation du bundle dans une application externe.

    @winzou: merci pour les modifs!

  12. #12
    Membre expérimenté Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Par défaut
    Ca m'a l'air cool ce bundle malheureusement a chaque fois que je tape une commande il me dit :
    The command "..." was not successful

    The command "list" was not successful.
    The command "list." was not successful.
    The command "init:bundle "MyApp\FilmothequeBundle" src/" was not successful.

    Tu sais pas pourquoi ?

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    Difficile à dire comme ca mais je viens de commit une modification pour que cela affiche le message d'erreur venant du processus (utilisation de proc_open).
    Est ce que ce message t'aide?

    Il y a une autre méthode qui n'utilise pas de nouveau processus (sans proc_open). Pour cela il faut mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sf2gen_console:
          new_process: false
    Cette méthode-la bug sur le "cache:clear" pour l'instant...

    Mais si tu es en local et que tu as proc_open, la première méthode fonctionne bien... normalement

    Je reviens vers toi.

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    The command "list" was not successful.
    Je ne comprends toujours pas pourquoi celle ci déconne.
    The command "list." was not successful.
    Ca n'existe pas
    The command "init:bundle "MyApp\FilmothequeBundle" src/" was not successful.
    Il y avait un bug avec les quotes mais je l'ai corrigé. merci.

    En fait comme Symfony2 renvoi son message d'erreur sous forme d'exception, le process n'est pas un succès.

    J'ai maintenant viré le test de succès; ainsi on récupère le message réel d'erreur! Ca devrait t'aider!

  15. #15
    Invité de passage
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Par défaut Pb à l'installation...
    Bonjour,

    Je ne sais pas si c'est l'endroit idéal pour poser cette question mais j'ai un problème. Après l'installation, j'obtiens l'erreur :

    " InvalidArgumentException: Unable to load class "Twig_Environment" "

    Et effectivement, dans Sf2genConsoleListener.php il y'a :

    " use Symfony\Bundle\TwigBundle\TwigEngine "

    sauf que TwigBundle n'est pas installé et que je ne trouve pas vraiment de sources qui correspondent...

    y'a t'il des bundle pré-requis à l'installation de ConsoleBundle ?

    Merci d'avance car je déploie SF2 sur un hébergement perso OVH et cette appli me serait d'une grande utilité

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    Oui c'est le bon endroit.

    En fait, dans le bundle, il y a des vues Twig. Donc, il faut utilisé TwigBundle (et donc Twig) au moins pour le bundle.

    Comme il est (devrait être) utilisé seulement en mode DEV, tu peux activer TwigBundle uniquement en DEV... ainsi cela n'impliquera aucun ralentissement en PROD.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // app/ApplicationKernel.php
    public function registerBundles()
    {
        $bundles = array(
            // donc ici, il n'y a pas TwigBundle , je suppose
        );
     
        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            // previous bundles like WebProfilerBundle
            $bundles[] = new Symfony\Bundle\TwigBundle\TwigBundle(),
            $bundles[] = new Sf2gen\Bundle\ConsoleBundle\Sf2genConsoleBundle();
        }
     
        return $bundles;
    }
    Par curiosité, tu utilises quel moteur de vue? php?
    Tu ne sais pas utilisé WebProfilerBundle non plus alors?

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/12/2010, 19h36
  2. Réponses: 5
    Dernier message: 18/12/2009, 09h40
  3. Réponses: 3
    Dernier message: 21/11/2006, 22h05
  4. Réponses: 5
    Dernier message: 07/06/2006, 12h11
  5. Réponses: 8
    Dernier message: 28/10/2005, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo