Hallo.
Ich benötige für mein Projekt einige Klassen, welche wiederum von anderen Klassen genutzt werden müssen. Diese sind z.B. die Securty,Mysql, User Klasse (sie werden auf jeder Seite benötigt). Um zu verhindern, dass ich später z.B. das Objekt $mysql überschreibe dachte ich mir, dass ich die Klassen in einer "Oberklasse" instaniiere. Ähnlich wie beim Woltlab Community Framework.
meine index.php sähe dann z.B. so aus:
die "Oberklasse" sieht so aus:
Die einzelnen Klassen können dann über MFW::user()->show('irgendwas'); aufgerufen werden. Außerdem kann ich z.B: in der Mysql Klasse über MFW::security()->check_data(); einfach auf die Security Klasse zugreifen.
Somit kann ich verhindern, dass ich durch $mysql = "test"; mein mysql-Objekt überschreibe.
Was haltet ihr von dieser Vorgehensweise? Kann dies zu Problemen führen?
Ich benötige für mein Projekt einige Klassen, welche wiederum von anderen Klassen genutzt werden müssen. Diese sind z.B. die Securty,Mysql, User Klasse (sie werden auf jeder Seite benötigt). Um zu verhindern, dass ich später z.B. das Objekt $mysql überschreibe dachte ich mir, dass ich die Klassen in einer "Oberklasse" instaniiere. Ähnlich wie beim Woltlab Community Framework.
meine index.php sähe dann z.B. so aus:
PHP-Code:
error_reporting(E_ALL | E_STRICT);
function __autoload($class)
{
require_once('classes/'.$class.'.class.php');
}
new MFW();
echo MFW::security()->test();
PHP-Code:
final class MFW
{
private $lang = 'de';
protected static $mysql_obj;
protected static $security_obj;
protected static $user_obj;
function __construct()
{
self::$mysql_obj = mysql::singleton($this->lang);
self::$security_obj = new security($this->lang);
self::$user_obj = new user($this->lang);
}
public static final function security()
{
return self::$security_obj;
}
public static final function mysql()
{
return self::$mysql_obj;
}
public static final function user()
{
return self::$user_obj;
}
}
Somit kann ich verhindern, dass ich durch $mysql = "test"; mein mysql-Objekt überschreibe.
Was haltet ihr von dieser Vorgehensweise? Kann dies zu Problemen führen?