Extending PEAR::DB (static constructor issue?)
| From: | weston at leary dot csoft dot net | Date: | Thu, 09 Mar 2006 23:16:42 +0000 |
| Subject: | Extending PEAR::DB (static constructor issue?) | ||
| Groups: | php.pear.general | ||
| Request: | Send a blank email to pear-general+get-23253@lists.php.net to get a copy of this message | ||
So... I'm trying to extend PEAR::DB. It'd be great to keep everything it offers and just
add a few more perhaps unconventional functions.
Intuitively, it seemed like this approach might work:
<?PHP
require_once("DB.php");
# Toy Extension of DB Class
class DBToyExt extends DB
{
var $foo = 1;
var $bar = 2;
function testext($x)
{
echo "\nHEY: $x";
}
}
$dte = DBToyExt::connect("mysql://weston_tssa:******@localhost/weston_tssa");
$dte->testext('testing'); # Error happens here
$dte->testext($dte->moo);
$dte->testext($dte->bar);
?>
However, it doesn't seem to understand that the method "testext" exists, and gives me
a fatal error to that effect, as you can see:
http://weston.canncentral.org/web_lab/mlib/DBToyExt.php
I'm guessing this is a side effect of the static constructor -- apparently using the
"extends" keyword is enough to help the engine know that the class DBToyExt is supposed to
inherit the static function "connct", but it's not enough to bless the return value
of connect from the class DB to DBToyExt....
How do I get around this and extend PEAR::DB?
Thanks,
Weston