Re: Database includes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bruce Cowin wrote:
> I'm curious as to how everyone organises and includes their classes in
> PHP5.  Let's take a simple example that has 3 classes: customer, order,
> and database.  The database class has a base sql db class (I know there
> is PDO and other things but this class is already written and working)
> and classes that inherit from the base class for dev, test, and prod,
> passing the associated logins.  The customer and order will both use the
> appropriate database class depending on which environment its in (e.g.,
> SalesDevDB, SalesTestDB, SalesProdDB).
> 
> I don't want to have to go into the customer and order class code and
> change which db class it uses when I move it from dev to test and from
> test to prod.  What's the proper way to handle this?  Or am I way off
> base?

Hi Bruce,

Use a factory or singleton pattern to instantiate your database objects,
and you can centralize the choice.

public $production = 'Dev'; // or 'Test' or 'Prod'
static function factory($dbname, $args)
{
    if (!class_exists($dname . self::$production . 'DB')) {
        require 'However/You/Find/It.php';
    }
    $db = $dname . self::$production . 'DB';
    return new $db($args);
}

Singleton would simply return a pre-instantiated object if it exists for
that class type but is otherwise the same.

Greg

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux