Table des Matières
-
Introduction
-
La relation entre Dolibarr et PHP
-
Versions PHP prises en charge par Dolibarr (2023-2025)
-
Problèmes courants de compatibilité PHP dans Dolibarr
-
Diagnostiquer les problèmes PHP avec Dolibarr
-
Comprendre les journaux d'erreurs et les types d'avertissement
-
Mettre à niveau ou rétrograder PHP en toute sécurité pour Dolibarr
-
Ajuster la configuration PHP pour Dolibarr
-
Correction des erreurs Dolibarr causées par les modifications PHP
-
Comment les modules et modèles personnalisés se dégradent avec les mises à jour PHP
-
Meilleures pratiques de développement pour la compatibilité PHP
-
Comment pérenniser votre instance Dolibarr
-
Réflexions finales
1. Introduction
Dolibarr ERP & CRM est une plateforme de gestion d'entreprise open source robuste, conçue pour répondre aux besoins évolutifs des indépendants, des PME et même des grandes organisations. Conçu en PHP, Dolibarr s'appuie entièrement sur l'environnement d'exécution PHP pour toutes ses opérations, du rendu des pages web à l'exécution de la logique métier et des points de terminaison des API.
Pour cette raison, Compatibilité des versions PHP ce n’est pas seulement un détail technique : c’est un élément fondamental qui peut avoir un impact direct sur les performances, les fonctionnalités et la stabilité.
Dans cet article, nous explorerons comment PHP et Dolibarr interagissent, identifierons les problèmes de compatibilité courants, passerons en revue les diagnostics et les correctifs, et proposerons les meilleures pratiques pour maintenir votre système à la fois à jour et stable.
2. La relation entre Dolibarr et PHP
Dolibarr est entièrement développé en PHP. Chaque fonctionnalité, module et composant d'interface utilisateur est traité par un moteur d'exécution basé sur PHP. Autrement dit, la version de PHP exécutée sur votre serveur. doit s'aligner sur ce que Dolibarr prend en charge.
Si votre version PHP est trop vieuxDolibarr risque de ne pas démarrer ou de manquer des fonctionnalités clés. Si c'est le cas, trop nouveau, vous pourriez être confronté à des erreurs inattendues, à des fonctions obsolètes et à des modules cassés.
Les mises à niveau PHP introduisent :
-
Amélioration des performances
-
Dépréciation ou suppression de fonctions
-
Modifications du comportement par défaut (par exemple, typage strict, gestion des erreurs)
-
Extensions ou modifications de configuration
-
Correctifs de sécurité
Les versions de Dolibarr sont régulièrement mises à jour pour prendre en charge les nouvelles versions de PHP, mais si vous ne suivez pas attentivement ces changements, vous risquez de vous retrouver avec un instance cassée après une mise à niveau de PHP.
3. Versions PHP prises en charge par Dolibarr (2023-2025)
Voici un aperçu général de la compatibilité PHP entre les versions récentes de Dolibarr :
| Version Dolibarr | PHP minimum | PHP recommandé | PHP testé au maximum |
|---|---|---|---|
| 13.x – 14.x | PHP 7.0 | PHP 7.4 | PHP 8.0 |
| 15.x – 17.x | PHP 7.2 | PHP 8.0 | PHP 8.1 |
| 18.x – 20.x | PHP 7.4 | PHP 8.0 / 8.1 | PHP 8.1 |
| 21.x – 22.x | PHP 8.0 | PHP 8.1 + | PHP 8.2 / 8.3 |
| Future 23.x+ | PHP 8.1 | PHP 8.2 + | PHP 8.3 + |
Important:Référez-vous toujours aux notes de publication de la version spécifique de Dolibarr que vous exécutez avant de mettre à niveau PHP.
4. Problèmes courants de compatibilité PHP dans Dolibarr
Lorsque les versions PHP ne sont pas correctement alignées avec les exigences de Dolibarr, les problèmes suivants peuvent apparaître :
4.1 Erreurs fatales
-
Exemple :
Cela se produit lorsque le code Dolibarr appelle une fonction supprimée dans les versions PHP plus récentes (comme PHP 8.0 et supérieures).
4.2 Avertissements d'obsolescence
-
Exemple :
Cet avertissement ne fait pas planter l'application, mais encombre les journaux et peut indiquer de futurs points de défaillance.
4.3 Incompatibilité des modules
-
Les modules tiers écrits pour PHP 7.x peuvent ne pas fonctionner sous PHP 8.x
-
Les modèles PDF personnalisés utilisant des fonctions obsolètes peuvent générer des documents vierges ou endommagés
4.4 Comportement inattendu
-
Redirections brisées
-
Problèmes de session (par exemple, déconnexions constantes)
-
Échecs d'authentification de l'API
Ceux-ci sont plus difficiles à retracer mais proviennent souvent de valeurs par défaut modifiées ou gestion de type plus stricte dans les versions plus récentes de PHP.
5. Diagnostiquer les problèmes PHP avec Dolibarr
La première étape pour résoudre les problèmes de compatibilité est de identifier avec précision la cause.
5.1 Activer le rapport d'erreurs
In htdocs/main.inc.php, activer la sortie d'erreur :
Cela vous permettra de voir les avertissements, les avis et les erreurs fatales directement dans votre navigateur pendant les tests.
5.2 Vérifier les journaux PHP
Les journaux PHP contiennent souvent plus de détails que la sortie du navigateur.
Emplacements typiques :
-
/var/log/php-fpm.log -
/var/log/apache2/error.log -
/var/log/nginx/error.log -
/var/log/php/error.log(Hébergement partagé)
Consultez les entrées récentes liées à undefined functions, deprecated syntax, memory_limit violations.
5.3 Utiliser phpinfo()
Créez un fichier PHP simple dans votre racine Dolibarr :
Accédez-y via un navigateur et confirmez :
-
PHP version
-
Extensions chargées
-
Valeurs de configuration (
memory_limit,upload_max_filesize, Etc) -
Paramètres de session et de fuseau horaire
6. Comprendre les journaux d'erreurs et les types d'avertissement
Comprendre les différents types d'erreurs générées par PHP est essentiel pour un dépannage efficace. Voici un aperçu des types d'erreurs les plus courants rencontrés dans Dolibarr en cas de non-concordance PHP.
6.1 Erreurs fatales
Ces actions interrompent immédiatement l'exécution. Les pages Dolibarr peuvent s'afficher vides ou s'interrompre en cours de route.
Exemple :
6.2 Avertissements
Les avertissements indiquent un problème, mais la page se charge généralement quand même.
Exemple :
Ces erreurs apparaissent souvent lorsque le code tiers n'a pas été mis à jour pour les nouvelles versions de PHP.
Avis 6.3
Les avis pointent vers du code bâclé ou obsolète.
Exemple :
Ces erreurs peuvent ne pas affecter les fonctionnalités aujourd'hui, mais peuvent devenir des erreurs dans les futures versions de PHP.
6.4 Avis obsolètes
PHP signale des fonctionnalités qui seront bientôt supprimées. Ces notifications sont votre système d'alerte précoce.
Exemple :
Bien que le noyau de Dolibarr soit généralement nettoyé à chaque version, les modules plus anciens et le code personnalisé provoquent souvent ces avis.
7. Mettre à niveau ou rétrograder PHP en toute sécurité pour Dolibarr
Changer votre version de PHP peut résoudre des problèmes, ou en créer. L'essentiel est de le faire méthodiquement.
7.1 Quand mettre à niveau PHP
Effectuez une mise à niveau si :
-
Vous utilisez une ancienne version de PHP (par exemple 7.2, 7.3) qui n'est plus prise en charge
-
Vous avez besoin de meilleures performances ou de fonctionnalités de sécurité
-
Vous passez à une version plus récente de Dolibarr (par exemple, 22.x+ nécessite PHP 8.0 ou supérieur)
7.2 Quand rétrograder PHP
Rétrograder si :
-
Vous utilisez des versions héritées de Dolibarr (par exemple, v12–v14)
-
Les modules personnalisés ne sont pas compatibles avec PHP 8.x
-
Vous rencontrez des erreurs fatales après une mise à jour PHP
Important:Testez toujours dans un environnement de test avant de modifier PHP en production.
7.3 Comment changer la version de PHP (Linux CLI)
Pour Ubuntu/Debian :
Pour CentOS/RHEL :
Pour revenir à une version précédente :
Redémarrez le serveur Web :
Assurez-vous que Dolibarr se charge correctement et que tous les modules sont accessibles après le changement.
8. Ajuster la configuration PHP pour Dolibarr
Même avec la bonne version PHP, de mauvais paramètres peuvent entraîner des performances lentes ou des erreurs inattendues.
Modifier php.ini pour affiner ces paramètres :
8.1 Activer les extensions requises
Dolibarr nécessite plusieurs extensions PHP. Utilisation php -m pour vérifier les modules actifs.
Assurez-vous que ces options sont activées :
-
pdo_mysql -
mbstring -
curl -
gd -
intl -
json -
fileinfo -
xml
Activer les extensions via :
Redémarrez ensuite votre serveur Web.
9. Correction des erreurs Dolibarr causées par les modifications PHP
Voici comment résoudre les problèmes spécifiques de Dolibarr déclenchés par des incompatibilités de version PHP :
9.1 get_magic_quotes_gpc() Indéfini
Cette fonction a été supprimée dans PHP 8.0.
Fixer: Mettez à niveau Dolibarr vers au moins la version 15.x ou commentez les appels dans les modules personnalisés.
9.2 Factures ou propositions vierges
Cela est souvent dû à des versions TCPDF ou DOMPDF obsolètes qui ne sont pas compatibles avec PHP 8.
Fixer:
-
Remplacer les modèles PDF personnalisés par des modèles mis à jour
-
Mettre à niveau le
lib/pdforlib/tcpdfrépertoires -
Assurez-vous qu'aucun espace n'existe avant
<?phpbalises dans les modèles
9.3 Échec de l'authentification de l'API
Les versions plus récentes de PHP peuvent gérer l'analyse des en-têtes de manière plus stricte.
Fixer:
-
Vérifiez que la clé API est transmise correctement
-
Confirmer que les en-têtes de type de contenu sont définis
-
Réactiver les services Web dans la configuration de Dolibarr
9.4 Modules ou menus cassés
Si les menus disparaissent ou si les modules ne se chargent pas après une mise à niveau de PHP, cela peut être dû à :
-
Syntaxe obsolète (par exemple, décalages de tableau entre accolades)
-
Constructeurs à l'ancienne dans les classes
-
Appels de fonction manquants ou modifiés
Fixer:
-
Vérifier les journaux
-
Désactiver le module problématique
-
Mettre à jour le module si une version plus récente existe
-
Contactez le développeur du module pour une mise à jour PHP 8.x
10. Comment les modules et modèles personnalisés se dégradent avec les mises à jour PHP
Le cœur de Dolibarr évolue rapidement, mais les modules personnalisés sont souvent à la traîne. Voici les problèmes courants :
10.1 Ancienne syntaxe PHP
Les modules personnalisés écrits pour PHP 5 ou 7 peuvent utiliser une syntaxe désormais obsolète.
-
create_function() -
each() -
Balises ouvertes courtes (
<?au lieu de<?php) -
Comparaison non stricte
Solution: Refactorisez le code en utilisant les meilleures pratiques PHP 8 et testez-le sur un serveur de test.
10.2 Constructeurs obsolètes
Les constructeurs de classe plus anciens peuvent utiliser le nom de la classe, qui n'est plus valide dans PHP 8 :
Remplacer par:
10.3 Modèles PDF avec appels obsolètes
Les modèles de factures ou de propositions PDF personnalisés utilisent souvent des méthodes ou des fonctions obsolètes qui entrent en conflit avec les versions plus récentes de DOMPDF ou TCPDF.
Solution:
-
Reconstruisez le modèle en utilisant la dernière version
pdf_model.class.phpstructure -
Valider toutes les variables et fonctions de sortie
-
Évitez tout écho direct ou toute déclaration imprimée en dehors du contenu mis en mémoire tampon
11. Bonnes pratiques de développement pour la compatibilité PHP
Pour ceux qui développent ou étendent Dolibarr, suivez ces bonnes pratiques pour assurer la compatibilité avec les versions PHP actuelles et futures.
Utiliser PHP 8+ en développement
Testez toujours vos modules par rapport aux dernières versions de PHP, même si la production utilise des versions plus anciennes.
Évitez les fonctionnalités obsolètes
Suivez les dépréciations à l'aide du manuel PHP ou d'outils tels que :
-
Outils d'inspection de code de PHPStorm
Utiliser les déclarations de type lorsque cela est possible
Le code de type sécurisé est plus résilient aux changements de version PHP.
Structurer correctement les modules
Suivez le squelette du module Dolibarr et assurez-vous de déclarer :
-
Crochets
-
Permissions
-
Entrées de menu
-
Fichiers de langue
Cela garantit que votre module s'intègre proprement, quelles que soient les modifications PHP.
12. Comment pérenniser votre instance Dolibarr
Utilisez toujours les versions LTS
Restez fidèle aux versions Dolibarr étiquetées comme stable or LTS pour éviter les régressions.
Testez avant de mettre à niveau
Maintenir un environnement de rassemblement avec les prochaines versions de PHP et Dolibarr.
Annonces de compatibilité des pistes
Les journaux des modifications de Dolibarr incluent souvent des notes sur la prise en charge de PHP. Soyez attentifs à :
-
Modifications minimales de la version PHP
-
Fonctionnalités obsolètes
-
Mises à jour de base incompatibles
Automatiser les vérifications de compatibilité
Intégrez des outils d’analyse statique dans votre pipeline CI :
-
PHP Stan
-
Psaume
-
PHP_CodeSniffer (avec ensemble de règles PHPCompatibility)
13. Réflexions finales
La compatibilité PHP est une préoccupation majeure pour tous les utilisateurs de Dolibarr, des propriétaires de petites entreprises aux développeurs full stack. À mesure que Dolibarr évolue pour tirer parti des fonctionnalités PHP modernes (amélioration de la vitesse, de la sécurité et de la qualité du code), vous devez adapter votre environnement à cette évolution.
Une stratégie de compatibilité intelligente comprend :
-
Rester sur versions de Dolibarr prises en charge
-
Maintenir PHP à jour, mais pas trop loin en avant
-
Tester en profondeur dans des environnements de test
-
Mise à jour proactive des modules personnalisés
-
Suivre les meilleures pratiques de développement PHP
En maîtrisant la relation entre PHP et Dolibarr, vous assurez que votre système ERP n'est pas seulement fonctionnel et rapideMais c'est aussi résilient et prêt pour l'avenir.
