Re: Auth, patch to use existing DB object

From: Date: Sun, 24 Aug 2003 07:28:02 +0000
Subject: Re: Auth, patch to use existing DB object
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-20470@lists.php.net to get a copy of this message
Hello the patch looks ok, as far as I know this has not been implemened in CVS. I'll have a look at this and possible commit it tomorrow along with the other patch I glimpsed in the mail list. Yavor Tias wrote:
Hello, about the Auth package, stable version 1.2.2 (dont know how to access cvs so maybe its allready done by somebody else) i saw that it was possible to pass an existing container, but not possible to pass an existing DB object... this little patch allows you to pass an existing DB object, so that the (freshly made) container uses it (in stead of having to give a dsn and create a new DB object) It does this through the 'options' paramter (mixed) of Auth::Auth (whithout changing its code) An example on how to use this would be: require_once('DB.php'); $dsn = "mysql://foo:bar@example.org/auth" $db = DB::connect($dsn); unset($dsn); //other stuff require_once("Auth/Auth.php"); $auOpt = array(
           "DB" => &$db,
           "table" => "users",
           "usernamecol" => "nick",
           "passwordcol" => "pass",
           );
$au = new Auth("DB", $auOpt, "", true); the options keyword here is 'DB' but that can be easely changed this is the patch, Container/DB.php --- DB_orig.php 2003-08-23 21:54:23.000000000 +0200
+++ DB.php      2003-08-23 21:56:47.000000000 +0200
@@ -191,7 +191,9 @@
    function _parseOptions($array)
    {
        foreach ($array as $key => $value) {
-            if (isset($this->options[$key])) {
+            if (($key == "DB") && (is_object($value)) && (DB::isConnection($value)) {
+                $this->db = $value;
+            } elseif (isset($this->options[$key])) {
                $this->options[$key] = $value;
            }
        }


« previous php.pear.dev (#20470) next »