Hallo Zusammen;
ich bin gerade dabei den persistence-layer für mein Projekt zu schreiben.
Dabei ist mir aufgefallen, dass dies nicht so einfach ist wie in Java beispielsweise.
Was ich will ist folgendes:
BSP:
DAOBase ist abstract und soll natürlich einen public ctor haben, damit man es auch diesen auch von der Kindklasse aufrufen kann!
Da gibt es aber einen Konflikt, lass ich ihn public kommt eine Fehlermeldung
Fatal error: Access level to UserDAO::__construct() must be public (as in class DAOBase) in UserDAO.php on line 3
Markiere ich ihn als private ist er nicht mehr aufrufbar!
Eigentlich würde ich die ganzen Klassen am liebsten statisch haben, das geht aber nicht weil man anscheinend in php die Member nicht direkt mit Objekten initialisieren kann.
Also so:
Also, wäre top wenn jemand eine Idee hat, wie man sowas besser löst 
Vlg
Alex
ich bin gerade dabei den persistence-layer für mein Projekt zu schreiben.
Dabei ist mir aufgefallen, dass dies nicht so einfach ist wie in Java beispielsweise.
Was ich will ist folgendes:
BSP:
PHP-Code:
require_once("DAOBase.php");
class UserDAO extends DAOBase {
private static $sInstance;
public static function getInstance() {
if($sInstacne == null) {
$sInstance = new UserDAO();
}
return $sInstance;
}
private function __construct(){
parent::__construct();
}
}
Da gibt es aber einen Konflikt, lass ich ihn public kommt eine Fehlermeldung
Fatal error: Access level to UserDAO::__construct() must be public (as in class DAOBase) in UserDAO.php on line 3
Markiere ich ihn als private ist er nicht mehr aufrufbar!
Eigentlich würde ich die ganzen Klassen am liebsten statisch haben, das geht aber nicht weil man anscheinend in php die Member nicht direkt mit Objekten initialisieren kann.
Also so:
PHP-Code:
class DAOBase {
protected static $mConnection = mysql_connect($mServer, $mUser, $mPassword);
}

Vlg
Alex
Kommentar