Since php supports OO I think we should follow the OO rules. SO I wrote a [DAO layer like sun recommends it for it’s J2EE framework][1].

So lets start with the Factory. lets put it in a folder dal.

<?php
include_once( 'constants.php' );
require_once( 'factory/DatabaseFactory.php' );

class Factory
{
   function getInstance ()
   {
        static $instance;
        if (!isset($instance)) 
        {
            $c = __CLASS__;
            $instance = new $c;
        } 
        return $instance;
   }
    
   function getFactory()
   {
	return dataBaseFactory::getInstance();
   }
}
?>```
this factory is a singleton and can be called as such.

Something like this will do.

```php
require_once('dal/Factory.php');
$factory =  Factory::getInstance();```
the above file also uses a file called constants.php.

which looks like this.

```php
<?php
define('DATABASE', 'mysql');
?>```
We will discuss what it is used for later.

the rest will follow later.

 [1]: http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html