Bei der Aktualisierung einer Erweiterung zur Unterstützung von Joomla 3.x sind einige Fälle aufgetreten, in denen sich die Signatur für eine Funktion seit 2.5 geändert hat und eine Strict standards
Warnung angezeigt wird.
Zum Beispiel in der JTable-Klasse _getAssetParentId()
hatte sich das von geändert
protected function _getAssetParentId($table = null, $id = null)
{
...
}
dazu in Joomla 3.x:
protected function _getAssetParentId(JTable $table = null, $id = null)
{
...
}
Es ist ein kleiner Unterschied, aber es reicht aus, um die Warnung auszulösen.
Wenn Sie sich andere Erweiterungen ansehen, die Joomla 2.5 und 3.0 mit einer einzelnen Klassendatei unterstützen, scheinen sie das Problem einfach zu ignorieren.
Wenn wir die Warnung für 3.x korrigieren, wird 2.5 natürlich mit der Warnung installiert…
"Lösungen", die für uns keine Option sind, umfassen:
- Verwenden von zwei separaten versionenspezifischen Klassendateien
- Warnungen ausschalten
Wie lösen Sie diesen Konflikt?
quelle
Meines Wissens können Sie diese strenge Warnung nicht lösen. Weil die Signaturen in 2.5 oder 3.x immer unterschiedlich sind.
Beheben Sie es entweder für 3.x und ignorieren Sie es in 2.5 oder umgekehrt.
In einer produktiven Umgebung sollten Sie diese Warnung sowieso nie sehen, da Sie nur strenge Warnungen in den Entwicklungseinstellungen anzeigen sollten.
quelle
Es gibt ein großes Problem mit dem Status von PHP, einige Server verwenden immer noch 5.2, während andere bei 5.3 oder 5.4 sicher bleiben. Es gibt auch einige, die bei 5,5 aktuell bleiben.
Dies führt zu einem großen Problem bei der Frage, was zu unterstützen ist. Wenn Sie sich für den Markt der verschiedenen Versionen entscheiden, würde ich sagen, dass 5.2 am weitesten verbreitet, aber unsicher ist. 5.3 und 5.4 sind das, wonach Joomla in 3 sucht. Wenn sich ein Benutzer jedoch in 5.5 befindet, können die strengen Standardwarnungen von den anderen Versionen abweichen.
Obwohl PHP die Fehler nicht übertrifft, "funktioniert" es immer noch seine Warnung, dass die Art und Weise, wie es gemacht wird, nicht so ist, wie die aktuelle Version damit umgehen soll, sondern trotzdem funktioniert. Daher können für die meisten Entwickler die Warnungen von Notice und Strict Standards größtenteils ignoriert werden, da Sie, wenn Sie eine beheben, möglicherweise eine andere in einer anderen PHP-Version auslösen.
Das Entfernen aller Elemente ist für einen OCD-Entwickler am besten. Offensichtliche Fehler sollten behoben werden, aber solche, wie Sie sie beschreiben, würden dazu führen, dass Joomla zu stark auf eine PHP-Version fokussiert wird, was zu viel mehr Arbeit beim Upgrade der PHP-Version führen würde.
Die einzig wahre Lösung hierfür ist Joomlas "Bootstrap", um die PHP-Version zu testen und darauf basierende Dateien zu laden. Dies könnte zu einer Verdoppelung der Joomla-Basisinstallationsgröße führen und viel mehr Arbeit leisten, als für Fehler erforderlich ist Brechen Sie keine Website. Don Gilberts Antwort geht näher darauf ein.
Meine Antwort ist seltsam, aber ich denke, sie kann anderen helfen, das totale Durcheinander von PHP zu verstehen.
quelle