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 :
Ensuite, il faut définir les variables d’environnement pour la deuxième base de données dans le fichier .env :
A partir de là, on peut utiliser les méthodes du Query Builder pour spécifier la connexion qu’on souhaite utiliser :
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 :
Dans le fichier de migration généré, on spécifie la connexion à utiliser :
4. Ensuite, vous pouvez exécuter vos migrations comme d’habitude :
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 :
Cela exécutera toutes les migrations disponibles sur la connexion pgsql.
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 :
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.
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
J’ai beau connaître composer depuis quelques années, j’en apprend encore aujourd’hui.
Composer, l’outil de gestion de dépendances PHP, a introduit une fonctionnalité essentielle pour la sécurité : l’audit des packages. Dans cet article, nous explorerons en détail ce qu’est l’audit des packages, comment l’utiliser et pourquoi il est crucial pour la sécurité de vos projets.
Qu’est-ce que l’audit des packages ?
L’audit des packages est un processus qui permet de détecter les vulnérabilités de sécurité dans les dépendances de votre projet. Lorsque vous utilisez des packages tiers (comme des bibliothèques ou des frameworks), il est essentiel de s’assurer qu’ils ne contiennent pas de failles de sécurité connues. C’est là que l’audit des packages entre en jeu.
Comment fonctionne l’audit des packages avec Composer ?
Vérification automatique lors de l’installation et de la mise à jour :
Depuis Composer 2.4, chaque fois que vous installez ou mettez à jour un package, Composer vérifie automatiquement les versions installées et les nouvelles versions à la recherche de vulnérabilités connues.
Si une version vulnérable est détectée, Composer affiche un avertissement.
Commande composer audit :
La commande composer audit vous permet de lister les vulnérabilités de sécurité signalées pour les versions actuellement installées des packages.
Elle affiche les informations suivantes :
Nom du package
Identifiant CVE
Titre de l’avis de sécurité
Lien vers l’avis de sécurité
Plage(s) de versions affectées
Date de publication de l’avis
Formats de sortie personnalisables :
Vous pouvez spécifier le format de sortie pour les vulnérabilités détectées en utilisant l’option --audit-format.
Formats pris en charge : table, plain, json et summary.
Utilisation en CI/CD :
Les pipelines CI/CD peuvent exécuter composer audit pour s’assurer qu’il n’y a pas de vulnérabilités connues avant de déployer l’application.
Exemple d’utilisation
Supposons que vous souhaitiez installer une version vulnérable de Guzzle (par exemple, la version 7.4.4). Voici comment Composer réagit :
Composer installe le package, mais affiche un avertissement concernant la vulnérabilité détectée.
Conclusion
L’audit des packages avec Composer est un outil puissant pour renforcer la sécurité de vos projets PHP. Utilisez-le régulièrement pour vous assurer que vos dépendances sont à l’abri des vulnérabilités connues. Voici quelques conseils pour une utilisation efficace :
Mettez à jour vos packages : Lorsqu’une vulnérabilité est corrigée dans une nouvelle version d’un package, assurez-vous de mettre à jour votre projet pour bénéficier de la correction.
Surveillez les alertes de sécurité : Abonnez-vous aux notifications de sécurité pour les packages que vous utilisez. Ainsi, vous serez informé rapidement des nouvelles vulnérabilités.
Vérifiez les dépendances de vos dépendances : Les packages que vous installez peuvent eux-mêmes avoir des dépendances. Assurez-vous que ces dépendances sont également sécurisées.
Utilisez des outils complémentaires : En plus de Composer, explorez d’autres outils d’analyse statique et dynamique pour renforcer la sécurité de votre code.
En appliquant ces bonnes pratiques, vous contribuerez à protéger vos applications PHP contre les menaces potentielles. N’oubliez pas que la sécurité est l’affaire de tous, et chaque petit geste compte !
L’amélioration et la maintenance du code PHP sont des aspects cruciaux du développement logiciel, visant à garantir la fiabilité, la performance et la pérennité des applications. Pour ce faire, l’utilisation de bibliothèques bien choisies joue un rôle essentiel. Ces librairies offrent des fonctionnalités prêtes à l’emploi, facilitant le développement, la gestion des dépendances, et assurant une base solide pour des mises à jour et des corrections efficaces. Opter pour des bonnes pratiques de codage, comme la modularité et la documentation claire, contribue également à simplifier la maintenance du code PHP sur le long terme.
Il existe librairies en PHP, qui aident à la maintenabilité du code en PHP en donnant les infos à améliorer. Ces librairies sont les suivantes : phploc, phpcs, phpmd, phpdd
phploc, ou comment décortiquer la complexité du code PHP
PHPLOC est un outil d’analyse statique pour les projets PHP, permettant de mesurer diverses métriques de code. Il fournit des informations détaillées sur la taille et la complexité d’un code source PHP, en comptant notamment le nombre de classes, de méthodes, de traits, de lignes de code, et d’autres indicateurs pertinents. Cet outil est souvent utilisé dans le processus d’évaluation de la qualité du code et peut aider les développeurs à comprendre la structure et la complexité de leur projet. En résumé, PHPLOC offre une vision quantitative des caractéristiques du code source PHP.
$ php phploc.phar src
phploc 8.0-dev by Sebastian Bergmann.
Directories: 104
Files: 856
Lines of Code (LOC): 67,955
Comment Lines of Code (CLOC): 19,533 (28.74%)
Non-Comment Lines of Code (NCLOC): 48,422 (71.26%)
Logical Lines of Code (LLOC): 18,478 (27.19%)
Classes or Traits 662
Methods 3,389
Cyclomatic Complexity
Lowest 1.00
Average 2.00
Highest 156.00
Functions 185
Cyclomatic Complexity
Lowest 1.00
Average 1.00
Highest 1.00
PHPCS, ou PHP CodeSniffer, est un outil d’analyse statique de code pour PHP. Il permet de détecter et de signaler les violations des normes de codage définies, telles que PSR-1, PSR-2, et des conventions personnalisées. PHPCS facilite ainsi le maintien de la cohérence et de la lisibilité du code au sein d’un projet PHP, en offrant des recommandations et des corrections automatisées pour s’assurer que le code respecte les standards établis. Cet outil est largement utilisé dans le processus de développement pour garantir une qualité uniforme du code. En résumé, PHPCS contribue à la conformité aux normes de codage et à l’amélioration de la qualité du code PHP.
Détection automatisée des mauvaises pratiques avec phpmd
PHPMD, ou PHP Mess Detector, est un outil d’analyse statique de code conçu pour détecter les codes sources PHP potentiellement problématiques. Il se concentre principalement sur les aspects liés à la complexité du code, aux mauvaises pratiques de programmation, et à la détection des codes redondants. PHPMD propose des règles configurables pour identifier ces problèmes, offrant ainsi aux développeurs des suggestions pour améliorer la lisibilité, la maintenabilité et la performance de leur code. En somme, PHPMD est un outil précieux pour identifier et corriger des aspects critiques de la qualité du code PHP.
PhpDeprecationDetector est un outil spécifique pour la détection des dépréciations dans le code source PHP. Il est conçu pour identifier les portions du code qui utilisent des fonctionnalités ou des méthodes PHP obsolètes, signalant ainsi les points où des mises à jour sont nécessaires pour maintenir la compatibilité avec les versions PHP les plus récentes. Cet outil aide les développeurs à anticiper les changements à venir dans les futures versions de PHP et à prendre des mesures proactives pour mettre à jour leur code en conséquence. En bref, PhpDeprecationDetector contribue à assurer la pérennité des applications PHP en signalant les éléments de code sujets à des modifications dans les versions futures de PHP.
Conclusion
En conclusion, l’utilisation synergique de ces librairies représente une approche holistique pour garantir la qualité, la lisibilité et la pérennité du code PHP. En intégrant ces outils dans le processus de développement, les développeurs peuvent non seulement identifier et corriger les problèmes existants, mais aussi anticiper les évolutions futures du langage, assurant ainsi une base solide et adaptative pour leurs applications. En adoptant cette approche complète, les équipes de développement sont mieux équipées pour créer des solutions logicielles robustes, évolutives et conformes aux normes de l’industrie.
Ils existent bien d’autres librairies de ce style, et je ne manquerai pas d’en discuter, dans le futur.
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.