Frage zu meiner vorgehensweise mit Klassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu meiner vorgehensweise mit Klassen

    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:
    PHP-Code:
    error_reporting(E_ALL E_STRICT);
    function 
    __autoload($class)
    {
        require_once(
    'classes/'.$class.'.class.php');
    }
    new 
    MFW();
    echo 
    MFW::security()->test(); 
    die "Oberklasse" sieht so aus:

    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;
        }

    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?
Lädt...
X