<?php require( 'classes/drivers/adodb/adodb.inc.php' ); /** * Database class * * @author Mateusz Drozdzynski <matid@alfa-system.pl> * @version 1.0 * @access public * @copyright Mateusz Drozdzynski */ class Database { /** * ADODB::ADODB */ function __construct() { $Config = Singleton::getInstance( 'Config' ); $this->resConnection = &ADONewConnection( $Config->getValue( 'database/type' ) ); $this->resConnection->PConnect( $Config->getValue( 'database/host' ), $Config->getValue( 'database/user' ), $Config->getValue( 'database/password' ), $Config->getValue( 'database/database' ) ); } } ?>
I teraz inicjuję tą klasę poprzez takie wywołanie:
<?php $Database = Singleton::getInstance( 'Database' ); ?>
Prowadzi to po prostu do zwrócenia obiektu klasy utworzonego poprzez normalne new.
A teraz przejdźmy do sedna sprawy:
Ma ktoś pomysł jak zmusić klasę Database do zwrócenia przy tworzeniu referencji do innej klasy i autodestrukcji instancji samej siebie?
Zależy mi na takim przebieku wydarzeń:
- Ładuję klasę Database
- Uruchamia się konstruktor, który przygotowuje instancję klasy ADODB
- Po wykonaniu konstruktora nie zostaje zwrócona instancja klasy Database tylko ADODB (Database::$resConnection)