Mailinglisten-Archive |
> >leider müsste dass dann so aussehen (geht in PHP auch nicht ;-)) > > >class artikel extends class_sql,helper,layout,cms_container { > > function do_something() { > > $this->query('SELECT * FROM artikel'); > > } > >} gott sei dank geht das nicht, weil das dem oop-gedanken absolut widerspricht ! extends ist eine vererbung ... vater erbt person sohn erbt person aber nicht auto erbt möbelhaus... das hat einfach NICHTS miteinander zutun, was du da machst ist ein mergen von methoden und variablen, die nichts gemein haben... das ist einfach ganz schlechter stil ... was du haben/implementieren willst, ist der singleton-pattern ... google -> singleton z.b. so.... class db { // constructor function db() { } // & um eine referenz zu returnen function &singleton() { static $instance; if (!isset($instance)) $instance = new db(); // erstelle erste und einzige instanz // db instanz zurückliefern return $instance; } } wenn du jetzt irgendwo die db-class brauchst. ... $db =& db::singleton(); in deiner artikel-class class artikel { var $db; function artikel() { $this->db =& db::singleton(); } function bla() { $this->db->query('SELECT foo FROM bar'); } } der singleton-pattern kommt aus dem java-feld und wurde entwickelt um immer EINE instanz einer klasse zu haben und von überall standardisiert auf diese instanz zugreifen zu können .. man braucht hier also keine globalen, keine superglobalen und sonstige variablen .. immer wenn du die datenbank brauchst, dann holst du dir die instanz mit dem singleton-pattern ($db =& db::singleton();) kann man sich sowieso ganz schön in der Pear_DB anschauen .... cvs.php.net -> pear -> db > I woas zwar net wie du deine Klassen definierst, I mach des eigentlich immer > so, dass I da a Hirachie neibring... > Aber vielleicht is des ausserhalb Bayerns net üblich ??? > > class cms_container extends class_sql { > [...] > } > > class layout extends cms_container { > [...] > } > > class helper extends layout { > [...] > } > > class artikel extends helper { > [...] > } naja, wenn die classen noch was miteinander zu tun haben, was ich allerdings stark bezweifle, ok ... ansonsten: s.o.
php::bar PHP Wiki - Listenarchive