Re: Database includes

From: Date: Mon, 27 Aug 2007 02:51:28 +0000
Subject: Re: Database includes
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-261334@lists.php.net to get a copy of this message
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

« previous php.general (#261334) next »