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

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [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 (https://github.com/squizlabs/PHP_CodeSniffer/), php-cs-fixer (https://github.com/FriendsOfPHP/PHP-CS-Fixer) et à Rector (https://github.com/rectorphp/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.

    Ci-dessous le code "pourri" :

    Code:
    <?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:
    <?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.
    Tortue Genial 69 et woluweb aiment ceci.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X