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

  1. #1
    Membre éclairé
    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
    Points : 658
    Points
    658
    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.
    Un petit si la réponse convient. Merci.

  2. #2
    Membre actif

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

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    Points : 223
    Points
    223
    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
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    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 éclairé
    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
    Points : 658
    Points
    658
    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".
    Un petit si la réponse convient. Merci.

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    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 éclairé
    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
    Points : 658
    Points
    658
    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!
    Un petit si la réponse convient. Merci.

  7. #7
    Membre éclairé
    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
    Points : 658
    Points
    658
    Par défaut
    J'ai ajouté l'autocomplétion sur les commandes de base de Symfony2.
    Je ferai une update ce soir pour que l'autocompletion comprennent toutes les commandes disponibles dans les bundles chargés dans l'application.
    Un petit si la réponse convient. Merci.

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 63
    Points
    63
    Par défaut
    C'est une très bonne initiative, j'ai déjà eu des idées de conception de ce genre mais jamais réalisé, j'ira y jeter un oeil.

    Tu récupères les flux de sortie ?

  9. #9
    Membre éclairé
    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
    Points : 658
    Points
    658
    Par défaut
    Je lance le script app/console par php avec le composant Process et j'affiche l'output. C'est relativement basique mais interresant si on ne veut pas ouvrir le shell pour faire une seule commande.

    Ce bundle est pour moi une base vers une application plus globale dans laquelle on pourra, notamment, gerer les consoles de toutes nos applications sf2 en plus de bien d autres fonctionnalités. J'espere avoir le courage d'arriver au bout de mes idees.
    Un petit si la réponse convient. Merci.

  10. #10
    Membre éclairé
    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
    Points : 658
    Points
    658
    Par défaut
    J'ai mis des screenshoots pour ceux qui n'auraient pas l'envie de tester pour voir à quoi cela ressemble.
    Un petit si la réponse convient. Merci.

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 63
    Points
    63
    Par défaut
    C'est du beau travail félicitations !

  12. #12
    Responsable Qt & Livres


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

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    Par défaut
    Je viens d'installer ça sur mon projet (je passe enfin à une beta plus récente que la première ), franchement, !
    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 !

  13. #13
    Membre éclairé
    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
    Points : 658
    Points
    658
    Par défaut
    Merci! Maintenant, il y a même la possibilité de savoir paramétrer plusieurs applications.
    Un petit si la réponse convient. Merci.

  14. #14
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Bonjour,

    J'ai cette erreur quand je démarre ton application :

    Unable to find template "Sf2genConsoleBundle:Console:toolbar_js.html.twig".
    500 Internal Server Error - InvalidArgumentException
    3 linked Exceptions:

    Twig_Error_Loader »
    InvalidArgumentException »
    InvalidArgumentException »
    J'ai résolu le problème en renommant le sous-dossier "console" de Resources/views en "Console". Pour info je suis sous Ubuntu et par défaut les path sont sensibles à la casse sous Linux..

    Et sinon beau boulot !
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  15. #15
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Une autre correction que j'ai dû apporter (pour reproduire le bug: http://localhost/web/app_dev.php/_configurator/) :

    dans Sf2genConsoleListener.php, à la ligne 46 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
            if ($response->headers->has('X-Debug-Token') && $response->isRedirect()) {// && $this->interceptRedirects) {
                if (null !== $session = $request->getSession()) {
                    // keep current flashes for one more request
                    $session->setFlashes($session->getFlashes());
                }
     
                $response->setContent($this->templating->render('Sf2genConsoleBundle:Console:toolbar_redirect.html.twig', array('location' => $response->headers->get('Location'))));
                $response->setStatusCode(200);
                $response->headers->remove('Location');
            }
    La propriété interceptRedirects semble venir du WebProfilerBundle de Symfony mais n'existe pas dans ton bundle apparemment...
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  16. #16
    Membre éclairé
    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
    Points : 658
    Points
    658
    Par défaut
    Merci, je vais mettre à jour.

    Je mettais inspiré du WebProfilerBundle au départ et cette fonction traîne de la.
    Il n'y a pas lieu d'intercepter la redirection dans mon bundle, je supprime cela!

    Content que ce bundle serve à 2-3 personnes.
    Un petit si la réponse convient. Merci.

  17. #17
    Responsable Qt & Livres


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

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    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 !

  18. #18
    Membre éclairé
    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
    Points : 658
    Points
    658
    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
    Un petit si la réponse convient. Merci.

  19. #19
    Responsable Qt & Livres


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

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    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 !

  20. #20
    Responsable Qt & Livres


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

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    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 !

Discussions similaires

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

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