Hallo Forumler,
ich brauche einen Denkanstoß... ich möchte in einem PHP5-Script eine bestimmte Funktion/Klasse so gestalten, daß diese nur auf bestimmte ihr zugewiesene Daten zugreifen kann und somit keinen Zugriff auf andere Klassen und Methoden erhält. Sie müßte quasi in einem eigenen Prozeß laufen.
Der Sinn des Ganzen: ich schreibe an einer kleinen Template-Engine (ja, ich kenne Smarty :) ), der komplexe Datenstrukturen bzw. Objekte übergeben werden. Auf diese soll natürlich zugegriffen werden können. Andere im selben Prozeß initialisierte Objekte und Methoden sollen aber nicht "erreichbar" sein.
Eine Möglichkeit wäre wohl,
- sämtliche Template-Daten und Objekte zu serialisieren und in der Session oder einem XML-File zu sichern
- dann die TemplateEngine in einem eigenen Request aufzurufen und den Pfad des XML-Files zu übergeben
- und dann das Template zu rendern
Somit wäre das Parsen der Templates von allen anderen Daten und Funktionen "abgeschottet". Der Nachteil ist der zusätzliche Aufwand durch das Serialisieren der Daten und Objekte, dem Starten des neuen Requests, etc.
Schöner fände ich, wenn es eine Möglichkeit gäbe, auf Klassen-Ebene eine Art "Sandbox" zu definieren, so daß nicht unbedingt ein eigener Request gestartet werden muß.
Frage: geht sowas? Kennt jemand andere Möglichkeiten das Problem zu lösen?
Bin für jeden Tipp dankbar,
Gruß,
Stefan