Codice PHP:
class database()
{
private $connection = false ;
private $server ="" ;
private $user = "" ;
private $pass = "" ;
private $dbName = "" ;
public functiuon __construct( $opts = false )
{
/* Setta i valori*/
}
private function doConnect()
{
/*controlla gli attributi e connetti*/
$this->selectDb( ) ;
}
public function selectDb($dbName=false)
{
// se ho connessione
// usa $this->dbName se non e' passato il prametro $dbName
mysql_select_db($dbn,$this->connection) ;
}
// TUTTI GLI ALTRI METODI UTILI
public function doQuery( $query ) ;
public function doSelect( $table , $options=false ) ;
public function doInsert( $table , $options ) ;
// ECCETERA
}
class user()
{
private $data = false ;
priivate $isLogged = false ;
// ECCETERA
}
TI fai delle classi cosi' sei apposto
define( "INCLUDE_PATH" , "./" ) :
include( "resources.php" ) ;
dentro resources ci metti include( INCLUDE_PATH."/dbclass.php" ) ; etc etc
quindi dopo gli include
$user = new User();
$sb = new Database( array( "server" => "" .--.... ) ) ; etc.. // puoi anche gestire nel costruttore diu default oppure esendere la classe per non lanciare ogni volta.
// Volendo puoi stipare in sessione le classi (una specie di gestore delle persistenze primitivo)
quidni
Codice PHP:
try{
$user->loadByName() ; // loadById vedi te
}
catch( USERNOTFOUND_EXCEPTION $e1 ){ /*gestisci*/ }
catch( EXCEPTION $e1 ){ /*gestisci eccezione generica*/ }
se lo user esiste ed e' attivo
session_start();
$_SESSION["user"] = $user ;
E vai trnauqillo.
E' piu' semplice, fa le stesse cose, puoi sempre sapere dove e come gestire errori.
daltro canto se vuoi usare i singleton
Codice PHP:
class database()
{
public function connetti()
{
/*eseguiconnessione e restituiscila*/
}
public function selectDb($db,&$conn)
{}
public funcition doQUery($q);
// ETCCC
}
e per usarle
$conn = database::connetti() ;
database::selectDb( "miodatabase" , $conn ) ;
// ETC:......
//devi fare query
$ris = database::doQuery( "select * from this_is_right where 1" ) ;