4 Stimmen

Ist es möglich, eine Standard-PHP-Funktion außer Kraft zu setzen?

Ich würde gerne die _() PHP-Funktion so, dass sie ein oder mehrere Argumente unterstützt. Ist es möglich, dies mit PHP-Code zu tun?

3voto

Wesley van Opdorp Punkte 14770

Nein, aber mit PHP-Version >= 5.3.0 können Sie Namespacing Allerdings.

1voto

Fabio Punkte 18201

Sie könnten versuchen, die Runkit-Erweiterung aber in Produktionsumgebungen ist das eine schlechte Praxis. Siehe auch Neudefinition der PHP-Funktion?

1voto

Spudley Punkte 161296

Es ist möglich, mit Hilfe der Runkit-Erweiterung .

Es wird jedoch im Allgemeinen nicht als gute Idee angesehen, außer für Dinge wie Unit-Tests, bei denen Sie einen Teil Ihrer Funktionalität isolieren möchten.

Für den allgemeinen Gebrauch sollten Sie keine eingebauten Funktionen überschreiben, da dies die Wartung Ihres Codes erschwert und einige sehr schwer zu behebende Probleme aufwirft.

Außerdem ist die Runkit-Erweiterung als "experimentell" gekennzeichnet, was bedeutet, dass sie wirklich sollte nicht in einem Produktionssystem verwendet werden.

1voto

martinstoeckli Punkte 22126

Tun Sie das wirklich nicht! Selbst wenn Sie der einzige Entwickler an diesem Projekt sind und wissen, dass Ihr Projekt nicht erfolgreich sein wird, kann man nie wissen, wie lange Ihr Code in Gebrauch sein wird (oft viel länger, als man denkt). Sollte ein anderer Entwickler in Ihren Code einsteigen müssen, wird er es sehr schwer haben, weil er sich nicht auf PHP selbst verlassen kann.

Ein besserer Weg wäre, eigene Methoden/Funktionen zu schreiben, die dann die PHP-Funktion aufrufen, die Sie überschreiben möchten. Auf diese Weise kann ein Entwickler sofort erkennen, dass es sich nicht um die Standard-PHP-Funktion handelt, und selbst wenn PHP in zukünftigen Versionen andere Parameter zulässt, haben Sie eine saubere Lösung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X