| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Naja, ich dachte eben, es wäre sinnvoll, ein Singleton-Objekt löschen und es anschl. z.B. neu instanzieren (und z.B. anders initialisieren) zu können. Eine konkrete Anwendung fällt mir gerade nicht ein. Wenn ichs aber löschen möchte, dann sinnvollerweise über die Factory oder über die abstrakte Klasse, die den Singleton-'Cache' verwaltet. Lösche ich daraus aber ein Objekt, so sind nur bei echten Referenzen mit & auch die entsprechenden Variablen auf null gesetzt, denen ich mit getInstance(); das Objekt zugewiesen habe. Ansonsten habe ich die schönste Inkonsistenz, die ich im ST Pattern haben kann: im Cache existiert kein Objekt, also wird beim nächsten Aufruf der getInstance() Methode ein neues erzeugt, in der Variable ist aber noch das alte Objekt, das jetzt nicht mehr identisch mit dem neuen ist. Eine Variante wäre, jede ST Klasse ihre eigene Objektinstanz statisch vorhalten zu lassen, statt die ST Instanzen zentral zu verwalten. Spätestens, wenn ich diese Klassen aber über eine Factory verwalten möchte wirds knifflig. Das hab ich noch nicht hinbekommen. |
| | |
| | |
| Erfahrener Benutzer | Ein Singleton zu löschen und neu zu instanzieren wäre keine Singleton Was aber vergleichbar wäre: Ein Objekt, das den Ausgangszustand des Singleton-Objektes entspricht, was sich sicher durch eine Art reset()-Methode umsetzen lässt. Wenn sich sonst noch Methoden dran hängen, sind die eben selbst Schuld
__________________ Nicht jeder Fehler ist ein Bug. |
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
| |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Also bis auf die call_user_func* Funktionen kenne ich sonst nurnoch Reflections: http://de3.php.net/reflection#langua...flectionmethod Vielleicht löst dessen Methode invoke() ja dein Vorhaben. Reflections sind zweifellos mächtig, aber wofür sie eigentlich in PHP implementiert wurden: Zitat:
| |
| | |
| | |||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Stimmt, da hatte ich jetzt noch gar nicht dran gedacht. Obwohl ReflectionMethod::invoke() schon widder so aussieht, als könnte ich da erneut Bekanntschaft mit Herrn Nahasapeemapetilon äh.... mit dem T_PAAMAYIM_NEKUDOTAYIM machen :wink: Mal sehen, ob ichs mir so kompliziert machen möchte über Reflections zu gehen. EDIT: Zitat:
| ||
| | |
| | |||
| Erfahrener Benutzer | Hammer, Lange Diskussion und Zergling kommt mit nem Dreizeiler Zitat:
Naja, auf Zergling hören. Womöglich meinst du kein Singleton, aber es mag trotzdem sinnvoll sein.
__________________ Nicht jeder Fehler ist ein Bug. | ||
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| t_paamayim_nekudotayim, php t_paamayim_nekudotayim, t_paamayim_nekudotayim php, was ist t_paamayim_nekudotayim, \t_paamayim_nekudotayim\, robo47 eval statisch, php t_paamayim_nekudotayim, g t_paamayim_nekudotayim, t_paamayim_nekudotayim auf deutsch, php eval singleton, php.net t_paamayim_nekudotayim, php reset singleton, php t_paamayim_nekudotayim static, php unexpected t_paamayim_nekudotayim, php this static t_paamayim_nekudotayim, t_paamayim_nekudotayim static class method, php5 t_paamayim_nekudotayim, php bug t_paamayim_nekudotayim, t_paamayim_nekudotayim,, singletoncache deutsch |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.