
kwestia taka:
<?php class pseudosingleton { function __construct() { $GLOBALS['obi'] = $this } //Warunki ladujace plik, klase i zmienne, zwracające odwołania do instancji i reszta... } ?>
W ten sposob, bo malym zabiegu w postaci frywolnej funkcji gdzieś poza klasą:
<?php function QUICK() { return $GLOBALS['obi']; } ?>
Można w dowolnym miejscu ('na zewnatrz', w innej funkcji, w klasie, etc..) korzystać z referencji do danej klasy bez konieczności ładowania jej jako $this->itd, czy global $x.. np.:
<?php QUICK()->cos->gdzies(); class x { function jakasFunkcja() { QUICK()->cos->cosInnego(); } } ?>
itd...
Moje pytanie brzmi - czy to bezpieczne !?
Po zrzucie tablicy $GLOBALS widać 'flaki' wszystkich stworzonych w ten sposob obiektow.
Jeśli więc ktoś doczepiłby moją stronę do swojej i wywołał var_dumpa (lub w inny sposób) - mógłby podejrzeć nazwy pól i tym samym dalszą strukturę obiektów położonych niżej. Jednak ten sposób jest niezmiernie wygodny - po dodatkowej zmienia "QUICK" na "Q" - odwoływanie się z dowolnego miejsca do dowolnego obiektu to czysta przyjemność. Jak więc zabezpieczyć się przed podejrzeniem pól w $GLOBALS ?