Ik heb in Wordpress een plugin van een 3e partij die ik niet kan aanpassen (ivm updates), maar daarin zit een class die een keiharde string met een melding uitpoept. Dat keiharde moet wat minder, want is het Engels en het moet Nederlands worden.
De makkelijke weg is die string aanpassen, maar zoals gezegd, ik kan die plugin niet aanpassen ivm updates. Het ziet er ongeveer zo uit:
Pretty straightforward. Maar dat "problem?" moet iets anders worden. Nu de vraag hoe ik dat voor elkaar ga krijgen. Met een globale functie lukt het wel, maar het is geen globale functie.
Ik ben niet zo gedreven met PHP, maar wel met javascript, dus ik probeer al snel dit soort constructies:
Dit werkt natuurlijk niet, omdat PHP niet dynamisch is. Ook de class opnieuw declareren geeft een error (dat ie een class niet kan herdclareren).
Ik kan overigens de class wel extenden en die fire() opnieuw maken in de extend, maar daar schiet ik niets mee op, want de aanroepende code gebruikt dan mijn nieuwe class nog steeds niet, want dat zit ook in die plugin.
Dus, uhm, hoe doe je zoiets??
De makkelijke weg is die string aanpassen, maar zoals gezegd, ik kan die plugin niet aanpassen ivm updates. Het ziet er ongeveer zo uit:
PHP:
1
2
3
| class Foo extends Bar { public function fire() { print "problem?"; } } |
Pretty straightforward. Maar dat "problem?" moet iets anders worden. Nu de vraag hoe ik dat voor elkaar ga krijgen. Met een globale functie lukt het wel, maar het is geen globale functie.
Ik ben niet zo gedreven met PHP, maar wel met javascript, dus ik probeer al snel dit soort constructies:
PHP:
1
2
| Foo::fire = function() { ... }; Foo->fire = function() { ... }; |
Dit werkt natuurlijk niet, omdat PHP niet dynamisch is. Ook de class opnieuw declareren geeft een error (dat ie een class niet kan herdclareren).
Ik kan overigens de class wel extenden en die fire() opnieuw maken in de extend, maar daar schiet ik niets mee op, want de aanroepende code gebruikt dan mijn nieuwe class nog steeds niet, want dat zit ook in die plugin.
Dus, uhm, hoe doe je zoiets??
日本!🎌