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

Langage PHP Discussion :

Partage - Run_PHP - Une image Docker pour exécuter du code PHP dans un bac à sable


Sujet :

Langage PHP

  1. #1
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Points : 3 076
    Points
    3 076
    Par défaut Partage - Run_PHP - Une image Docker pour exécuter du code PHP dans un bac à sable
    Bonsoir

    Hier et aujourd'hui, j'ai pris le temps de porter le vieux mais très chouette code Run-Php-Code (https://github.com/websiteduck/Run-PHP-Code/) sous la forme d'une image Docker.

    De plus, j'ai ajouté un bouton "Refactor" qui permet d'améliorer le code PHP ayant été proposé. En effet, Refactor fait appel à phpcbf, php-cs-fixer et à Rector pour nettoyer la mise en page du code ainsi que de l'améliorer. Le code généré sera un code destiné pour s'exécuter sous PHP 7.4.26.

    L'idée est d'avoir une page web avec une partie de gauche où l'on peut taper un code PHP. Dans la barre d'outils, il y a un bouton RUN pour exécuter le code (pour autant qu'il soit autonome càd ne nécessitant aucune dépendance) et un bouton "REFACTOR". L'exemple montré ci-dessous illustre cette fonction. J'ai écris un code avec une mise en page, disons-le, pourrie et on peut voir dans la partie de droite que cette mise-à-page a été corrigée mais, également, que le code PHP a été amélioré.

    En effet, on peut aussi voir p.ex. la fonction setName() où le paramètre $name n'était pas typé et pourtant, dans la partie de droite, on voit que le paramètre l'est. Ceci parce que la propriété est bien définie comme string. Cette petite merveille est rendue possible grâce à Rector qui fait ça et bien plus.

    Nom : screenshot.png
Affichages : 252
Taille : 28,8 Ko

    Ci-dessous le code "pourri" :

    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
    <?php
    class Fruit {
      /**
       * @var string
       */
      public $name='';
     
      function setName($name) {    $this->name = $name;      }
      function getName() {return $this->name;
     
      }}
     
    $fruit = new Fruit();$fruit->setName('Apple');
    sprintf("Your fruit is %s",
    $fruit->getName());
    Et le même après amélioration (refactoring) :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
     
    class Fruit
    {
        /**
         * @var string
         */
        public $name = '';
     
        public function setName(string $name)
        {
            $this->name = $name;
        }
     
        /**
         * @return string
         */
        public function getName()
        {
            return $this->name;
        }
    }
     
    $fruit = new Fruit();
    $fruit->setName('Apple');
    sprintf(
        'Your fruit is %s',
        $fruit->getName()
    );
    L'idée est donc double : avoir un bac-à-sable où il est aisé de vite/vite copier/coller un code PHP et de l'exécuter et d'avoir tout aussi facilement une fonction de nettoyage/amélioration du code.

    Le repository est disponible ici : https://github.com/cavo789/run_code
    L'image Docker est ici : https://hub.docker.com/r/cavo789/runcode

    Cette image est donc ultra-simple à utiliser :
    1. Il faut exécuter la commande docker pull cavo789/runcode:1.1 pour télécharger l'image (à faire une seule fois)
    2. Exécuter docker run --rm -p 88:80 -d --name runcode cavo789/runcode:1.1 pour créer une instance de l'image
    3. Se rendre à l'URL http://127.0.0.1:88 pour utiliser l'interface.


    Bon amusement et bonne programmation.
    Images attachées Images attachées  

Discussions similaires

  1. [Joomla!] Afficher (sans exécuter) du code php dans un article
    Par jekif dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 11/04/2011, 15h12
  2. Exécuter du code PHP dans un onchange javascript
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/01/2009, 18h08
  3. Réponses: 2
    Dernier message: 07/07/2006, 22h11
  4. Réponses: 14
    Dernier message: 15/05/2006, 17h34
  5. Utilise une image ISO pour le boot du PC
    Par Furius dans le forum Ordinateurs
    Réponses: 2
    Dernier message: 05/09/2005, 15h02

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