![]() |
Abhängigkeit von Klassen unmöglich?
Hallo,
der folgende Code ist in PHP-Syntax, es handelt sich jedoch um eine allgemeine Aufgabenstellung. Ich habe eine Klasse "Cache". Im Konstruktor kann ich den Cache aktivieren oder deaktivieren:
Code:
Diesen boolschen Wert würde ich gerne aus einer Konfigurationstabelle in der Datenbank auslesen. Die Schwierigkeit ist jedoch, dass ich die Konfigurationsdaten cache, da sich diese nur selten ändern:
$cache = new cache(true); // aktiviert
$cache = new cache(false); // deaktiviert
Code:
Das heißt, für die Konfigurationsdaten muss eine Instanz der Cache-Klasse existieren. Allerdings brauche ich zum Erstellen der Instanz wiederum die Konfigurationswerte.
$config_data = $cache->get_data('config');
Wie löst man das? :gruebel: Grüße, Matze |
Re: Abhängigkeit von Klassen unmöglich?
Ist die Cache-Konfiguration tatsächluch Instanz-spezifisch? Wenn nicht, dann ist das ganz einfach über statische Methoden / Felder lösbar...
![]() Allerdings teilen dann natürlich alle Instanzen von Cache die selbe Konfiguration. Aber ich schätze mal mehr als einen cache gibt es sowieso nicht? |
Re: Abhängigkeit von Klassen unmöglich?
Richtig, es gibt nur eine Instanz, aber ich wüsste nicht, in wie weit mir das helfen soll.
So oder so muss ich dem Cache den Wert aus der (ggf. gecachten) Konfiguration vorgeben. |
Re: Abhängigkeit von Klassen unmöglich?
Du kannst jederzeit nach dem Erstellen der Klasse und dem Bemerken der Tatsache dass Du den anderen Konstruktor gebraucht hättest, die neue Klasse ein zweites mal richtig erzeugen und die Werte rüberkopieren und dann den Instanzverweis umbiegen.
|
Re: Abhängigkeit von Klassen unmöglich?
Ich glaube, was ich gerne hätte, geht einfach nicht.
Es würde gehen, wenn ich sage, dass die Konfigurationsdaten immer oder nie aus dem Cache kommen. Dann könnte ich danach auch den Konstruktor neu aufrufen mit dem entsprechenden Wert. Ich hätte es gerne so: Wert aus der Konfiguration lesen => wenn dort Cache deaktiviert, Konfiguration aus der Datenbank holen, sonst aus dem Cache |
Re: Abhängigkeit von Klassen unmöglich?
Cache ist doch eine selbst erstellte Klasse. Warum kann diese Klasse sich den Wert zum cachen nicht selbst besorgen? Das würde sie zwar dann jedes mal machen, aber das wird wohl nicht das Problem sein.
Zitat:
Bernhard |
Re: Abhängigkeit von Klassen unmöglich?
Zitat:
|
Re: Abhängigkeit von Klassen unmöglich?
Zitat:
Sonst kann ich die gleich aus der Datenbank auslesen (immer), wenn ich zum Auslesen eine Verbindung brauche. |
Re: Abhängigkeit von Klassen unmöglich?
Vielleicht fehlt mir grad ein wenig Hintergrundwissen zu PHP, aber ich dachte, wenn ein PHP-Request durch ist, dann wird der Handler aus Performancegründen entladen und damit sowieso alle Klassen aufgeräumt?
Sowas wir einen Workerprozess der permanent solche Singleton-Instanzen im Speicher hält gibt es doch da gar nicht, oder etwa doch? |
Re: Abhängigkeit von Klassen unmöglich?
Nicht, dass ich wüsste. Aber davon habe ich doch auch gar nichts geschrieben. :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz