Re: Overriding core functions

From: Date: Tue, 22 Aug 2006 15:34:01 +0000
Subject: Re: Overriding core functions
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-241009@lists.php.net to get a copy of this message
Some already good workarounds given for this question... BUT. Is it even possible to override a core function? Like I wrote a function called 'exit' and I got a parser error, which leads me to believe it is not even possible to override the core functions. Is this true of ALL PHP functions? -B Alex Turner wrote:
It may be possible to override the core function - I don't actually know. If you just define a new function with the same function it might work OK. The snag I see coming at you like a tonne of bricks is 'how do you call the original function once you have overridden it.'. This like like calling SUPER. in Java. AJ Peter Lauri wrote:
Yes, that could solve it. However, my question was if I can override the core functions :) Similar that I can do Parent::myFunction() in a subclass, I want to do that, but with core functions :) -----Original Message----- From: Jochem Maas [mailto:jochem@iamjochem.com] Sent: Tuesday, August 22, 2006 7:27 PM To: Peter Lauri Cc: php-general@lists.php.net Subject: Re: [PHP] Overriding core functions Peter Lauri wrote:
Hi, I want to add some functionality when calling the mysql_query():
function my_query($Query) {
             //do stuff before
             mysql_query($Query);
             //do things after
} // or something like: class PeteDB { var $conn; function PeteDB($db, $usr, $pwd, $etc) {
    $this->conn = mysql_connect($db, $usr, $pwd, $etc);
    if (!is_resource($this->conn)) die('db is useless'); //
trigger_error() } function query($qry/*, $args*/) {
    // do stuff
    $r = mysql_query($qry, $this->conn);
    // do more stuff
    return $r;
} } /* tada! hint: always use some kind of wrapper for things like db related functions (because it allows for stuff like this and, for instance, makes it alot easier to switch dbs - because you only have to change code in one place, not counting any db-specific sql floating around your app) */
This would just be for one project where I want to record all Queries and the result of them, creating an own logging function. I did a lot of Google, but no article that I found that take care of this subject. /Peter


« previous php.general (#241009) next »