Quindi sto progettando un sistema di reporting al lavoro è il mio primo progetto scritto OOP e sono bloccato sulla scelta progettuale per la classe DB.
Ovviamente voglio solo creare un'istanza della classe DB per sessione / utente e poi passarla a ciascuna delle classi che ne hanno bisogno. Quello che non lo so è la migliore pratica per implementarlo. Attualmente ho il codice come il seguente: -
class db
{
private $user = 'USER';
private $pass = 'PASS';
private $tables = array( 'user','report', 'etc...');
function __construct(){
//SET UP CONNECTION AND TABLES
}
};
class report{
function __construct ($params = array(), $db, $user)
{
//Error checking/handling trimed
//$db is the database object we created
$this->db = $db;
//$this->user is the user object for the logged in user
$this->user = $user;
$this->reportCreate();
}
public function setPermission($permissionId = 1)
{
//Note the $this->db is this the best practise solution?
$this->db->permission->find($permissionId)
//Note the $this->user is this the best practise solution?
$this->user->checkPermission(1)
$data=array();
$this->db->reportpermission->insert($data)
}
};//end report
Ho letto sull'uso di classi statiche e mi sono appena imbattuto in Singletons (anche se questi sembrano essere già passati?) quindi qual è la migliore pratica corrente per farlo?