phpbar.de logo

Mailinglisten-Archive

[php] Singleton in mehrfach extendeten Klassen inkl. autoload...

[php] Singleton in mehrfach extendeten Klassen inkl. autoload...

Robert Hartung r.hartung at roberthartung.de
Mi Mai 19 17:53:14 CEST 2010


Hallo

isset() ist auch "false", falls der key einen value von NULL hat, daher
besser array_key_exists nutzen, auch wenn es hier wohl isset besser ist,
wollte ich aber trotzdem kurz anmerken ;)

Grüße
Robert

-----Ursprüngliche Nachricht-----
Von: php-bounces at phpbar.de [mailto:php-bounces at phpbar.de] Im Auftrag von
Sascha Grossenbacher
Gesendet: Mittwoch, 19. Mai 2010 17:50
An: deutschsprachige PHP-Mailingliste
Betreff: Re: [php] Singleton in mehrfach extendeten Klassen inkl.
autoload...

Hallo

2010/5/19 Jens Reinemuth <jens at reinemuth.info>:
> Hallo allesamt,
>
> stehe hier grad tooootal auf dem Schlauch.
>
> Ich habe eine Basis-Klasse namens "openWebX", welche alle
> magic-Functions beinhaltet, um z.B. bei __get eine Exception zu
> schmeissen o.ä.
>
> Nun habe ich da auch versucht eine Singleton-Funktion zu bauen, a la:
>
> class openWebX {
>
>    public static $instances = array();
>
>    private function __construct() {
>    }
>
>    static function init($strObject,$mixedParams='') {
>        if(!in_array($strObject, self::$instances)) {

in_array() prüft den *Wert*, du willst jedoch den Key prüfen. Also
einfach if (!isset(self::$instances[$strObject]))....

Hinweis am Rande, starke Kopplung, also z.B. wie in deinem Fall alle
Klassen von einer zentralen Klasse ableiten ist eine keine gute
Architektur. Siehe auch http://de.wikipedia.org/wiki/Lose_Kopplung

Gruss Sascha
-- 
** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
Informationen: http://www.phpbar.de
http://lists.phpbar.de/mailman/listinfo/php


php::bar PHP Wiki   -   Listenarchive