[PHP] functie overloaden (mail()) tbv logging

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 14:31
Is het mogelijk een functie, specifieker de functie mail(), te 'overloaden'?

Wat ik hiermee wil bereiken is een logging-functionaliteit van alle uitgaande e-mails. Die functie zal er dan ongeveer als volgt (pseudo-code) uit komen te zien:
PHP:
1
2
3
4
5
function mail($to, $subject, $message, $headers)
{
  write_to_log($to, $subject, $message, $headers);
  (original?)mail($to, $subject, $message, $headers) // originele mail()-functie dus
}


Ik ben bang dat het enige correcte antwoord hierop 'nee' is (er zit een overload-functie in PHP maar die is voor classes), maar wellicht heeft iemand een andere insteek voor dit probleem? Het is geen mogelijkheid alle functienamen te wijzigen in log_mail() of zo.

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Waarop is het wijzigen geen mogelijkheid? Ik ben inderdaad bang dat het niet mogelijk is. Mischien is een search & replace tool over meerdere bestanden een uitkomst?

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
PHP staat dat nu niet toe en ik vermoed dat dat nooit zal gebeuren. De enige manier die ik kan bedenken is om een module voor php te schrijven met een andere mail-functie hoewel ik niet durf te zeggen hoe goed dat werkt, maar in je php-code zal het wel op geen manier gaan werken.

Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 16:37

Basszje

Reisvaap!]

Je kan eventueel de Tweede (original) mail functie toch iets van _mail( bla ) noemen? Waarom is dit trouwens geen optie dan?

Eventueel kan je de write_to_log call gewoon in de orginele mail functie plempen, het is immers maar 1 regel?

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Waarom niet simpel een eigen functie schrijven die doet wat je wil? Wat maakt het uit dat je dan in je code mail(..,..,..,..) moet vervangen door mymail(..,..,..,..)? Zelfs al heb je kilometers bestaande code waar je meerdere keren de mailfunctie gebruikt dan is een search en replace binnen 5 seconden gebeurd. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.