Blog

  • Changer de version de PHP en Bash

    commande bash pour PHP

    Retour d’expérience de développeur PHP sous Linux.
    Le besoin de base était de pouvoir switcher de version de PHP en quelques secondes.

    Personnellement, j’ai 4 versions de PHP en parallèle sur mon Ubuntu 7.4, 8.0, 8.1 et 8.2), et pour faire un switch, j’avais quelques commandes Bash.
    Les problèmes que j’avais étaient les suivants :

    • Je n’avais pas de script complet la-dessus. Je lançais les commandes les unes après les autres.
    • Je désactivai une version spécifique de PHP, pour activer la version que je souhaitai

    J’ai voulu aller plus loin sur ces 2 points. J’ai donc fait un script complet qui désactive la version courante de PHP, et active la version de PHP demandé.
    J’ai mis en place aussi plusieurs vérifications, pour voir ce qui était mis en argument du script.

    Voici le script Bash :

    #!/bin/bash
    
    # This script switches the default PHP version on Ubuntu
    
    # Check if script is being run as root
    if [ "$(id -u)" != "0" ]; then
      echo "This script must be run as root" 1>&2
      exit 1
    fi
    
    # Check if version number is provided
    if [ $# -ne 1 ]; then
      echo "Usage: $0 <version>" 1>&2
      exit 1
    fi
    
    # Check if selected version is installed
    if ! dpkg -s "php$1" >/dev/null 2>&1; then
      echo "PHP version $1 is not installed" 1>&2
      exit 1
    fi
    
    # Disable current PHP version
    a2dismod php$(php -v | head -n 1 | cut -d " " -f 2 | cut -c 1-3)
    
    # Enable selected PHP version
    a2enmod php$1
    
    # Switch CLI version
    update-alternatives --set php /usr/bin/php$1
    
    # Restart Apache for changes to take effect
    systemctl restart apache2
    
    echo "Switched PHP version to $1"

    J’ai personnellement mis ce script dans un fichier, que j’ai nommé php-switch.sh.

    Ensuite, pour changer de version de PHP, exécutez le script avec le numéro de version comme argument. Par exemple, pour basculer vers PHP 8.2, vous pouvez utiliser la commande suivante :

    sudo ./php-switch.sh 8.2

    Et pour basculer vers PHP 7.4, vous pouvez utiliser la commande suivante :

    sudo ./php-switch.sh 7.4

    Améliorations

    Pour le moment, je ne vois pas forcément de piste d’amélioration, mais n’hésitez pas à m’en proposer si vous en avez.

  • Message d’alerte sous Symfony

    Symfony est le Framework PHP le plus connu et le plus complet du marché. J’ai l’occasion de souvent l’utiliser, au gré de mes missions, et j’apprends toujours des choses dessus.

    Dernièrement, en créant un espace d’administration sur un projet SF, je devais ajouter un système d’alerte en 2 étapes.

    Étape 1 : l’ajout des messages dans les contrôleurs de Symfony basé sur la fonction addFlash().
    Voici un exemple de code avec cette fonction :

    AddFlash Message

    La 2eme étape se base sur la réception du message d’alerte dans la vue.
    Dans mon exemple, la vue est en Twig, et utilise des classes CSS de Bootstrap 4 :

    Code Twig

    Le code précédent ne traite qu’un Warning.

    Personnellement, j’aime faire des codes plus complet. De plus, je sais que Bootstrap 4 possède plusieurs types d’alertes.

    En posant quelques questions à ChatGPT (oui, j’ai triché et alors), j’ai eu rapidement un code plus complet, et qui faisait le taf.
    Le voici :

    Ce code définit une table de correspondance alertClasses qui relie chaque type de message à la classe CSS appropriée.
    La classe CSS appropriée est définie en utilisant la table de correspondance lorsque le type de message est rencontré et utilisé dans le div.
    La structure de div est maintenant unique pour tous les types de messages, ce qui permet un code factorisé, et réutilisable dans toutes mes vues.

    Et voilà. Qu’en pensez-vous ?

  • Cartographie des villes de la loi montagne

    cartographie des villes de la loi montagne.

    La loi montagne 2 est une réglementation qui concerne l’utilisation de pneus neige sur les routes de montagne en France. Elle impose l’obligation d’utiliser des pneus neige ou des chaînes à neige sur certains tronçons de route lorsque les conditions météorologiques le nécessitent. Cette loi vise à améliorer la sécurité routière en montagne en hiver, en garantissant une meilleure adhérence des véhicules sur la route. Tout conducteur qui ne respecte pas cette obligation peut être verbalisé par les forces de l’ordre. Il est important de noter que la loi montagne 2 ne concerne que les routes de montagne en France, et qu’elle ne s’applique pas dans d’autres pays.

    J’ai reçu début décembre la liste des villes, ou il était obligatoire d’avoir ces pneus neiges.
    Voici cette liste : communes-loi-montagne.pdf

    Je voulais faire une cartographie avec ces données, mais comme je partais d’un PDF, je partais de très loin. Il me fallait avoir cette liste au format Excel, voir CSV, pour pouvoir bien commencer.

    J’ai regarder quelques applications permettant la conversion de fichier PDF en Excel.
    Après quelques tests, j’ai utilisé sodapdf qui m’a permis de faire la conversion souhaité. J’ai ensuite effectué une convertion excel à CSV.

    J’avais des données prêtes à être utilisé, mais il me manquait l’essentiel pour afficher les villes sur une carte : les coordonnées géographiques.
    Je connais justement une API permettant de rechercher ces informations, par rapport au nom de ville : l’API Adresse.

    Après un peu de recherche et un petit algo en PHP, je récupère les coordonnées en une fois.
    Je mets toutes ces données finales dans un fichier json.

    Il me restais à créer la carte qui afficherai ces points.
    Cette carte se trouve à l’adresse suivante : https://data.guillaume-richard.fr/carto/.

    Qu’en pensez-vous ?

  • Conférences Salon Data

    Logo Salon de la Data

    Fin Septembre 2022, ont été édité les vidéos des conférences du salon Data de cette même année.

    Nous y retrouvons plusieurs dizaines de vidéos traitant de la donnée. Je vous donne les liens vers les 2 playlists de la chaîne dédié :

    Pour en savoir plus, voici le lien vers le site internet qui va bien : salon data

  • Redesign tes sites web préférés avec Stylus

    Présentation de l’extension

    Petit article de présentation d’une extension assez sympa à utiliser sur les navigateurs Web.

    Stylus permet de changer l’apparence des sites Web courant, à votre convenance et selon vos souhait.
    Par exemple sur Youtube, si vous voulez afficher que la vidéo, et rendre invisible le reste, c’est tout à fait possible.

    Exemple d’utilisation

    Voici un exemple pour Youtube, je vous présente deux photos :

    Dans le cas ou vous voulez n’afficher que la vidéo, il suffit de créer un enregistrement sur Stylus, et d’ajouter les règles CSS qui vont bien.
    Pour mon exemple, voici les règles que je me suis mis :

    body {  overflow: hidden;}
    
    #columns{
      visibility: hidden;
      overflow: hidden;
    }
    
    .masthead-finish {  visibility: hidden;}
    #player {    visibility: visible;}

    Chose à savoir, quand vous ne connaissez pas le CSS :
    Il est possible d’importer des enregistrements créés par d’autres personnes.

    le site userstyles.world existe pour cela, et liste beaucoup d’exemples qui peuvent être utile.

    URL de l’extension

    Firefox : https://addons.mozilla.org/fr/firefox/addon/styl-us/
    Chrome : https://chrome.google.com/webstore/detail/stylus/clngdbkpkpeebahjckkjfobafhncgmne