Inhaltsverzeichnis
-
Einführung
-
Die Beziehung zwischen Dolibarr und PHP
-
Unterstützte PHP-Versionen für Dolibarr (2023–2025)
-
Häufige PHP-Kompatibilitätsprobleme in Dolibarr
-
Diagnostizieren von PHP-Problemen mit Dolibarr
-
Grundlegendes zu Fehlerprotokollen und Warntypen
-
Sicheres Upgrade oder Downgrade von PHP für Dolibarr
-
Anpassen der PHP-Konfiguration für Dolibarr
-
Beheben von Dolibarr-Fehlern, die durch PHP-Änderungen verursacht werden
-
Wie benutzerdefinierte Module und Vorlagen bei PHP-Updates beschädigt werden
-
Best Practices für die Entwicklung von PHP-Kompatibilität
-
So machen Sie Ihre Dolibarr-Instanz zukunftssicher
-
Abschließende Gedanken
1. Einleitung
Dolibarr ERP & CRM ist eine robuste Open-Source-Geschäftsmanagementplattform, die den wachsenden Anforderungen von Freiberuflern, KMUs und sogar großen Organisationen gerecht wird. Dolibarr basiert auf PHP und nutzt die PHP-Laufzeitumgebung für alle Funktionen – vom Rendern von Webseiten bis hin zur Ausführung von Geschäftslogik und API-Endpunkten.
Deswegen, PHP-Versionskompatibilität ist nicht nur ein technisches Detail – es ist ein grundlegendes Element, das sich direkt auf Leistung, Funktionalität und Stabilität auswirken kann.
In diesem Artikel untersuchen wir, wie PHP und Dolibarr interagieren, identifizieren häufige Kompatibilitätsprobleme, gehen durch Diagnose und Fehlerbehebung und bieten bewährte Methoden, um Ihr System sowohl aktuell und stabil.
2. Die Beziehung zwischen Dolibarr und PHP
Dolibarr ist vollständig in PHP aufgebaut. Jede einzelne Funktion, jedes Modul und jede Benutzeroberflächenkomponente wird durch eine PHP-basierte Ausführungs-Engine verarbeitet. Das bedeutet, dass die PHP-Version, die auf Ihrem Server läuft, muss mit dem übereinstimmen, was Dolibarr unterstützt.
Wenn Ihre PHP-Version zu alt, Dolibarr startet möglicherweise nicht oder Sie verpassen wichtige Funktionen. Wenn es zu neu, könnten unerwartete Fehler, veraltete Funktionen und defekte Module auftreten.
PHP-Upgrades führen ein:
-
Leistungsverbesserungen
-
Abwertung oder Entfernung von Funktionen
-
Änderungen am Standardverhalten (z. B. strikte Typisierung, Fehlerbehandlung)
-
Erweiterungen oder Konfigurationsänderungen
-
Sicherheitsupdates
Dolibarr-Versionen werden regelmäßig aktualisiert, um neuere PHP-Versionen zu unterstützen. Wenn Sie diese Änderungen jedoch nicht sorgfältig verfolgen, kann es passieren, dass Sie defekte Instanz nach einem PHP-Upgrade.
3. Unterstützte PHP-Versionen für Dolibarr (2023–2025)
Hier ist ein allgemeiner Überblick über die PHP-Kompatibilität der neuesten Dolibarr-Versionen:
| Dolibarr-Version | Mindest-PHP | Empfohlenes PHP | Max getestetes PHP |
|---|---|---|---|
| 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 |
| Zukunft 23.x+ | PHP 8.1 | PHP 8.2 + | PHP 8.3 + |
Wichtig: Lesen Sie vor dem Upgrade von PHP immer die Versionshinweise der spezifischen Dolibarr-Version, die Sie ausführen.
4. Häufige PHP-Kompatibilitätsprobleme in Dolibarr
Wenn PHP-Versionen nicht korrekt auf die Anforderungen von Dolibarr abgestimmt sind, können die folgenden Probleme auftreten:
4.1 Schwerwiegende Fehler
-
Ejemplo:
Dies geschieht, wenn Dolibarr-Code eine Funktion aufruft, die in neueren PHP-Versionen (wie PHP 8.0 und höher) entfernt wurde.
4.2 Warnungen vor veralteten Funktionen
-
Ejemplo:
Diese Warnung führt zwar nicht zum Absturz der App, führt jedoch zu einer Überlastung der Protokolle und kann auf zukünftige Fehlerquellen hinweisen.
4.3 Modul-Inkompatibilität
-
Für PHP 7.x geschriebene Module von Drittanbietern können unter PHP 8.x nicht mehr funktionieren.
-
Benutzerdefinierte PDF-Vorlagen mit veralteten Funktionen können leere oder beschädigte Dokumente erzeugen
4.4 Unerwartetes Verhalten
-
Kaputte Weiterleitungen
-
Sitzungsprobleme (z. B. ständige Abmeldungen)
-
API-Authentifizierungsfehler
Diese sind schwieriger zu verfolgen, stammen aber oft von geänderte Standardwerte oder strengere Typbehandlung in neueren PHP-Versionen.
5. PHP-Probleme mit Dolibarr diagnostizieren
Der erste Schritt zur Lösung von Kompatibilitätsproblemen besteht darin, die Ursache genau identifizieren.
5.1 Fehlerberichterstattung aktivieren
In htdocs/main.inc.php, Fehlerausgabe aktivieren:
Dadurch können Sie während des Tests Warnungen, Hinweise und schwerwiegende Fehler direkt in Ihrem Browser sehen.
5.2 PHP-Protokolle prüfen
PHP-Protokolle enthalten oft mehr Details als die Browserausgabe.
Typische Standorte:
-
/var/log/php-fpm.log -
/var/log/apache2/error.log -
/var/log/nginx/error.log -
/var/log/php/error.log(Shared Hosting)
Suchen Sie nach aktuellen Einträgen zu undefined functions, deprecated syntax oder memory_limit Verstöße.
5.3 Verwenden Sie phpinfo()
Erstellen Sie eine einfache PHP-Datei in Ihrem Dolibarr-Stammverzeichnis:
Rufen Sie es über den Browser auf und bestätigen Sie:
-
PHP-Version
-
Geladene Erweiterungen
-
Konfigurationswerte (
memory_limit,upload_max_filesize, Usw.) -
Sitzungs- und Zeitzoneneinstellungen
6. Fehlerprotokolle und Warntypen verstehen
Das Verständnis der verschiedenen PHP-Fehlerarten ist der Schlüssel zur effektiven Fehlerbehebung. Hier finden Sie eine kurze Übersicht der häufigsten Fehlertypen, die in Dolibarr bei PHP-Fehlern auftreten.
6.1 Schwerwiegende Fehler
Diese stoppen die Ausführung sofort. Dolibarr-Seiten werden möglicherweise leer dargestellt oder brechen mittendrin ab.
Ejemplo:
6.2-Warnungen
Warnungen weisen auf ein Problem hin, die Seite wird jedoch normalerweise trotzdem geladen.
Ejemplo:
Diese treten häufig auf, wenn Drittanbietercode nicht für neue PHP-Versionen aktualisiert wurde.
6.3-Hinweise
Hinweise weisen auf schlampigen oder veralteten Code hin.
Ejemplo:
Diese beeinträchtigen die Funktionalität heute möglicherweise nicht, können jedoch in zukünftigen PHP-Versionen zu Fehlern werden.
6.4 Veraltete Hinweise
PHP markiert Funktionen, die bald entfernt werden. Diese Hinweise sind Ihr Frühwarnsystem.
Ejemplo:
Während der Dolibarr-Kern im Allgemeinen mit jeder Version bereinigt wird, ältere Module und benutzerdefinierter Code verursachen häufig diese Hinweise.
7. Sicheres Upgrade oder Downgrade von PHP für Dolibarr
Das Ändern Ihrer PHP-Version kann Probleme lösen – oder neue verursachen. Der Schlüssel liegt darin, es methodisch anzugehen.
7.1 Wann sollte PHP aktualisiert werden?
Aktualisieren Sie, wenn:
-
Sie verwenden eine ältere PHP-Version (z. B. 7.2, 7.3), die nicht mehr unterstützt wird
-
Sie benötigen bessere Leistungs- oder Sicherheitsfunktionen
-
Sie wechseln zu einer neueren Dolibarr-Version (z. B. erfordert 22.x+ PHP 8.0 oder höher)
7.2 Wann sollte man PHP downgraden?
Herabstufung, wenn:
-
Sie verwenden ältere Dolibarr-Versionen (z. B. v12–v14).
-
Benutzerdefinierte Module sind nicht mit PHP 8.x kompatibel
-
Nach einem PHP-Update treten schwerwiegende Fehler auf
Wichtig: Testen Sie immer in einer Staging-Umgebung, bevor Sie PHP in der Produktion ändern.
7.3 So ändern Sie die PHP-Version (Linux CLI)
Für Ubuntu/Debian:
Für CentOS/RHEL:
So wechseln Sie zurück zu einer früheren Version:
Starten Sie den Webserver neu:
Stellen Sie sicher, dass Dolibarr ordnungsgemäß geladen wird und alle Module nach der Änderung zugänglich sind.
8. Anpassen der PHP-Konfiguration für Dolibarr
Selbst mit der richtigen PHP-Version können falsche Einstellungen zu Leistungseinbußen oder unerwarteten Fehlern führen.
Bearbeiten php.ini So optimieren Sie diese Einstellungen:
8.1 Erforderliche Erweiterungen aktivieren
Dolibarr benötigt mehrere PHP-Erweiterungen. Verwenden Sie php -m um aktive Module zu überprüfen.
Stellen Sie sicher, dass diese aktiviert sind:
-
pdo_mysql -
mbstring -
curl -
gd -
intl -
json -
fileinfo -
xml
Aktivieren Sie Erweiterungen über:
Starten Sie dann Ihren Webserver neu.
9. Beheben von Dolibarr-Fehlern, die durch PHP-Änderungen verursacht werden
So beheben Sie bestimmte Dolibarr-Probleme, die durch nicht übereinstimmende PHP-Versionen ausgelöst werden:
9.1 get_magic_quotes_gpc() Undefiniert
Diese Funktion wurde in PHP 8.0 entfernt.
Fixieren: Aktualisieren Sie Dolibarr mindestens auf v15.x oder kommentieren Sie Aufrufe in benutzerdefinierten Modulen aus.
9.2 Blankorechnungen oder Angebote
Dies liegt häufig an veralteten TCPDF- oder DOMPDF-Versionen, die nicht PHP 8-kompatibel sind.
Fixieren:
-
Ersetzen Sie benutzerdefinierte PDF-Vorlagen durch aktualisierte
-
Aktualisieren Sie die
lib/pdforlib/tcpdfVerzeichnisse -
Stellen Sie sicher, dass vor dem
<?phpTags in Vorlagen
9.3 API-Authentifizierung schlägt fehl
Neuere PHP-Versionen handhaben die Header-Analyse möglicherweise strenger.
Fixieren:
-
Überprüfen Sie, ob der API-Schlüssel korrekt übergeben wurde
-
Bestätigen Sie, dass die Inhaltstyp-Header festgelegt sind
-
Aktivieren Sie die Webdienste in der Dolibarr-Konfiguration erneut
9.4 Defekte Module oder Menüs
Wenn nach einem PHP-Upgrade Menüs verschwinden oder Module nicht geladen werden können, kann dies folgende Gründe haben:
-
Veraltete Syntax (z. B. Array-Offsets mit geschweiften Klammern)
-
Konstruktoren im alten Stil in Klassen
-
Fehlende oder geänderte Funktionsaufrufe
Fixieren:
-
Protokolle prüfen
-
Deaktivieren Sie das problematische Modul
-
Aktualisieren Sie das Modul, wenn eine neuere Version vorhanden ist
-
Kontaktieren Sie den Modulentwickler für ein PHP 8.x-Update
10. Wie benutzerdefinierte Module und Vorlagen bei PHP-Updates beschädigt werden
Der Dolibarr-Kern entwickelt sich schnell weiter, aber benutzerdefinierte Module hinken oft hinterher. Folgendes ist typischerweise problematisch:
10.1 Alte PHP-Syntax
Benutzerdefinierte Module, die für PHP 5 oder 7 geschrieben wurden, verwenden möglicherweise eine mittlerweile veraltete Syntax.
-
create_function() -
each() -
Kurze öffnende Tags (
<?statt<?php) -
Nicht strenger Vergleich
Die Lösung : Refaktorieren Sie den Code unter Verwendung der Best Practices von PHP 8 und testen Sie ihn auf einem Staging-Server.
10.2 Veraltete Konstruktoren
Ältere Klassenkonstruktoren verwenden möglicherweise den Klassennamen, der in PHP 8 nicht mehr gültig ist:
Ersetzen durch:
10.3 PDF-Vorlagen mit veralteten Aufrufen
Benutzerdefinierte PDF-Rechnungs- oder Angebotsvorlagen verwenden häufig veraltete Methoden oder Funktionen, die mit neueren Versionen von DOMPDF oder TCPDF in Konflikt stehen.
Die Lösung :
-
Erstellen Sie die Vorlage mit der neuesten
pdf_model.class.phpStruktur -
Validieren Sie alle Variablen und Ausgabefunktionen
-
Vermeiden Sie direkte Echo- oder Druckanweisungen außerhalb des gepufferten Inhalts
11. Best Practices für die Entwicklung von PHP-Kompatibilität
Wenn Sie Dolibarr entwickeln oder erweitern, befolgen Sie diese Best Practices, um die Kompatibilität mit aktuellen und zukünftigen PHP-Versionen sicherzustellen.
Verwenden Sie PHP 8+ in der Entwicklung
Testen Sie Ihre Module immer mit den neuesten PHP-Versionen, auch wenn in der Produktion ältere Versionen verwendet werden.
Vermeiden Sie veraltete Funktionen
Verfolgen Sie veraltete Funktionen mithilfe des PHP-Handbuchs oder von Tools wie:
-
Code-Inspektionstools von PHPStorm
Verwenden Sie nach Möglichkeit Typdeklarationen
Typsicherer Code ist widerstandsfähiger gegenüber PHP-Versionsänderungen.
Module richtig strukturieren
Folgen Sie dem Modulgerüst von Dolibarr und stellen Sie sicher, dass Sie Folgendes deklarieren:
-
Haken
-
Berechtigungen
-
Menüeinträge
-
Sprachdateien
Dadurch wird sichergestellt, dass Ihr Modul unabhängig von PHP-Änderungen sauber integriert wird.
12. So machen Sie Ihre Dolibarr-Instanz zukunftssicher
Verwenden Sie immer LTS-Versionen
Halten Sie sich an Dolibarr-Veröffentlichungen mit der Bezeichnung stabil or LTS um Regressionen zu vermeiden.
Vor dem Upgrade testen
Pflegen Sie a Staging-Umgebung mit den kommenden PHP- und Dolibarr-Versionen.
Ankündigungen zur Trackkompatibilität
Dolibarr-Änderungsprotokolle enthalten häufig Hinweise zur PHP-Unterstützung. Achten Sie auf:
-
Minimale PHP-Versionsänderungen
-
Veraltete Funktionen
-
Kompatibilitätsverletzende Kernupdates
Automatisieren Sie Kompatibilitätsprüfungen
Integrieren Sie statische Analysetools in Ihre CI-Pipeline:
-
Phpstan
-
Psalm
-
PHP_CodeSniffer (mit PHPCompatibility-Regelsatz)
13. Letzte Gedanken
PHP-Kompatibilität ist ein zentrales Anliegen für jeden Dolibarr-Nutzer, vom Kleinunternehmer bis zum Full-Stack-Entwickler. Da Dolibarr sich weiterentwickelt, um moderne PHP-Funktionen zu nutzen und so Geschwindigkeit, Sicherheit und Codequalität zu verbessern, müssen Sie Ihre Umgebung entsprechend weiterentwickeln.
Eine intelligente Kompatibilitätsstrategie umfasst:
-
Bleiben Sie dran unterstützte Dolibarr-Versionen
-
PHP aktuell halten – aber nicht zu weit voraus
-
Gründliches Testen in Staging-Umgebungen
-
Proaktive Aktualisierung benutzerdefinierter Module
-
Befolgen der Best Practices für die PHP-Entwicklung
Durch die Beherrschung der Beziehung zwischen PHP und Dolibarr stellen Sie sicher, dass Ihr ERP-System nicht nur funktional und schnell, aber auch belastbar und zukunftsfähig.
