Catégorie : PHP

  • Gestion de plusieurs BDD dans Laravel

    Dans certains contextes de projet, on a besoins d’avoir accès à plusieurs bases de données (au moins 2). Dans le contexte que j’ai pu avoir, il me fallait configurer 2 BDD. La première base était sur MySQL, et la deuxième sur PostgreSQL.

    Voici les différentes étapes que j’ai pu effectuer :

    La première étape est de définir les connexions de base de données dans le fichier de configuration config/database.php. Il faut ajouter une nouvelle connexion à la section connections du tableau de configuration. Par exemple :

    Configuration des 2 bases de données.

    Ensuite, il faut définir les variables d’environnement pour la deuxième base de données dans le fichier .env :

    Variables d’environnement pour la deuxième base de données.

    A partir de là, on peut utiliser les méthodes du Query Builder pour spécifier la connexion qu’on souhaite utiliser :

    Query Builder connexion

    L’étape suivante et de pouvoir effectuer les migrations des tables vers la deuxième base de données dans Laravel, il suffit de spécifier la connexion à utiliser lors de l’exécution des migrations. Il faut tout d’abord créer une migration Laravel.
    Voici la commande :

    commande de migration Laravel

    Dans le fichier de migration généré, on spécifie la connexion à utiliser :

    Migration Laravel avec une connexion BDD.

    4. Ensuite, vous pouvez exécuter vos migrations comme d’habitude :

    Commande Laravel pour les migrations.

    Cela créera la table test dans votre base de données PostgreSQL.
    Notez que si vous voulez exécuter toutes les migrations sur la deuxième base de données, vous pouvez utiliser la commande suivante :

    Commande Laravel pour les migrations, avec choix de la base de données.

    Cela exécutera toutes les migrations disponibles sur la connexion pgsql.

    Et voilà. Qu’en avez-vous penser ?

  • Tips Laravel : Comment vider le cache

    Vider le cache sur Laravel

    Travaillant depuis quelques mois sur le framework Laravel, j’ai trouvé tips qui me permettent de gagner du temps sur ce Framework.

    Par exemple, pour le cas du cache, j’ai pu créer un process Makefile qui se défini comme ceci :

    Commande de cache sur Laravel.

    La commande make cache permet de vider le cache du navigateur, des routes et de la configuration.
    Le make dump permet de régénérer le fichier d’autoload de composer.

    De temps en temps, on peut avoir ce genre d’erreur lors d’un cache:clear.

    Erreur lors d'un cache clear sur Laravel.

    Pour corriger l’erreur, il faut suivre ces étapes :

    • supprimer le dossier du cache (storage/framework/cache/data).
    • Le recréer.
    • Lui donner les bons droits (sudo chmod -R 777 storage/framework/cache/*)
    • Refaire un make cache.

    L’erreur à normalement disparu, et le cache est supprimé normalement

  • Définition de PHP_VERSION_ID

    Définition de la constante PHP_VERSION_ID

    En PHP, la constante PHP_VERSION_ID est une constante pré-définie qui représente la version courante de PHP sous forme d’un nombre entier. Cela facilite les comparaisons de versions dans le code, car vous pouvez simplement comparer les valeurs numériques plutôt que de manipuler des chaînes de caractères.

    Le format de la valeur PHP_VERSION_ID est le suivant :

    PHP_VERSION_ID = MAJOR * 10000 + MINOR * 100 + RELEASE
    • MAJOR: Le numéro de version majeure de PHP (par exemple, 7 pour PHP 7.x.x).
    • MINOR: Le numéro de version mineure de PHP (par exemple, 4 pour PHP 7.4.x).
    • RELEASE: Le numéro de version de correction (patch) de PHP (par exemple, 3 pour PHP 7.4.3).

    Pour la valeur PHP_VERSION_ID égale à 50600, cela signifie que :

    • MAJOR est égal à 5 (car 50600 divise par 10000 est égal à 5).
    • MINOR est égal à 6 (car 50600 modulo 10000 divise par 100 est égal à 6).
    • RELEASE est égal à 0 (car 50600 modulo 100 est égal à 0).

    Donc, la valeur 50600 correspond à PHP 5.6.0. C’était la version majeure 5, la version mineure 6, et la version de correction (patch) 0 de PHP. Cependant, veuillez noter que cette version est assez ancienne et n’est plus maintenue ni prise en charge. Il est fortement recommandé de mettre à jour vers une version plus récente de PHP pour des raisons de sécurité et de performance. La dernière version stable de PHP au moment de mon dernier entraînement est la version 8.x.x.

  • 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 ?

  • Comment afficher les erreurs php ?

    error_reporting, ou afficher les erreurs PHP.
    error_reporting

    Dans tout projet PHP, a un moment ou a un autre, un développeur aura besoin d’afficher les erreurs PHP.

    Pour cela, il suffit de modifier les 2 configurations suivantes : display_errors et error_reporting.

    Pour afficher les erreurs de vos scripts php sur votre navigateur, deux lignes sont nécéssaires au début de votre script :

    error_reporting(E_ALL);
    ini_set("display_errors", 1);

    Vos scripts php peuvent maintenant afficher leurs erreurs sur la page de votre navigateur Internet.

    Dans la documentation du site php.net, il existe des exemples pour aller plus loin, et n’afficher que des messages spécifique.
    Par exemple ci-dessous, j’affiche toutes les erreurs à part les E_DEPRECATED :

    error_reporting(E_ALL & ~E_DEPRECATED);
    ini_set("display_errors", 1);

    Inspirations

    https://www.php.net/manual/fr/function.error-reporting.php
    https://netoxygen.ch/faqs/comment-afficher-les-erreurs-php/