Hallo!
hast Du Ahnung, wie ich aus den Sourcen PHPs sauber ein paar PHP-eigene Funktionen rauslösche?
Warum willst Du das machen?
Ersteinmal geht es mir nur um einen Test, ob und wie PHP darauf reagiert. Dann, wenn keine Mucken auftreten, würde ich gerne (beim Beispiel bleibend) eine eigene Funktion mail() in PHP schreiben und die Funktion mit auto_append_file wieder anlegen.
Bedenke was Du Dir damit an zusätzlichem Pflegeaufwand einhandelst, wenn PHP aktualisiert wird...
Das weiß ich und ich sehe es mit großer Sorge, allerdings muß ich das jetzt schon beim apachen...
Als Beispiel möchte ich die Funktion mail() entfernen.
Warum verwendest Du nicht einfach disable_function?
Vielleicht ist das einfach nur ein Denkfehler: Ich würde gerne eigene Funktionalitäten für mail() nutzen wollen, jedoch andere darüber im Unklaren lassen (so gut das mit get_defined_functions() halt machbar ist ;). Es soll also nur die Funktionalität geändert werden ohne einen Redeclare auszulösen, daher kommt nur einundderselbe Name in Frage. Gäbe es andere Möglichkeiten?
In Welchen Dateien müßte ich suchen?
Ich kenne mich mit dem PHP-Source nicht so besonders gut aus, bei Extension müsste eine PHP Funktion normalerweise per "function_entry" registriert werden, was bei ext/standard/mail.c allerdings nicht gemacht wird (ist ja auch keine richtige Extension). Soweit ich das auf die Schnelle sehe, werden die Standard-Funktionen alle in ext/standard/basic_functions.c registriert. Vermutlich reicht es entsprechende Stellen dort und vielleicht auch in ext/standard/php_standard.h auszukommentieren.
Danke! In ext habe ich natürlich nicht geschaut.
Aber wie gesagt - mit einem ganz dicken Fragezeichen versehen ;-) Du könntest ja auch als quick&dirty hack für sendmail_path sowas wie /dev/null verwenden >:->
*lach* es soll ja was bei rauskommen, was mit identischen Parametern aber nur im Endeffekt(!) gleiches vollzieht.
Das wäre evtl. eine Frage die man auf php.general (ich weiß, da gibts viel Müll, lesen aber auch einige der Devs), oder sogar php.internals stellen könnte.
Aber vielleicht kann Dir auch hier noch jemand anders weiterhelfen...Ich würde das erhlich gesagt nicht im Source machen.
Dabei ist mir auch unwohl; wenn es nicht anders geht, muß ich da hineinknien ;_(
Gruß aus Berlin!
eddi