Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Serialisieren von Werten bei Session Repository
Antwort
 
Themen-Optionen
Alt 28.10.2007, 13:54   Nach oben    #1
dago
Erfahrener Benutzer
 
Registriert seit: 17.11.2005
Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
Standard Serialisieren von Werten bei Session Repository

Hallo

Ich hänge hier etwas am Konzept. Erstmal um was es überhaupt geht. Ich schreibe grad eine Registry Komponente. Dabei soll die Registry die Repository Komponente zum speichern von Werten nutzen. Auf diese Weise erreiche ich eine Flexibilität für Datenaustausch zwischen den Komponenten.

Kleines Besipiel:
PHP-Code:
$Registry DGLib_Registry::getInstance();
$ConfigRepository $Registry->getContainer('config');

$Config = new DGLib_Config($ConfigRepository);
$Config->parseIniFile('config.ini'); 
Das Objekt Config bekommt den Container "config" als Repository übergeben. Danach werden die Einstellungen aus der "config.ini" direkt in den Container "config" geparst.

Damit erhält man so den Zugriff auf die Einstellungen:
PHP-Code:
$Config->getContainer('database')->getKey('host');  
//oder
$Registry->getContainer('config')->getContainer('database')->getKey('host'); 

Nun zum eigentlichen Problem. Es ist schön und einfach, wenn ich ein ArrayRepository nutze. Das Interface dazu:
PHP-Code:
interface DGLib_Repository extends IteratorArrayAccess
{
    public function 
setKey($key$value);
    public function 
getKey($key);
    public function 
unsetKey($key);
    public function 
issetKey($key);
    
    public function 
setContainer($name, array $values NULL);
    public function 
getContainer($name);
    public function 
unsetContainer($name$ignore_content FALSE);
    public function 
issetContainer($name);
    
    public function 
hasKeys();
    public function 
hasContainers();
    
    public function 
getContainers();

Allerdings warum überhaupt die Komponente Repository. Es soll auch Session- und DatabaseRepository geben. Bei diesen zwei muss noch zusätzlich der Session- bzw. DatabaseHandler übergeben werden damit sie funktionieren.

Nun, bei Array ist es kein Problem ein Objekt abzuspeichern. Bei Session und Database müsste der serialisiert werden.

Ich finde es etwas blöd auf alle Werte die übergeben werden serialize und unserialize anzuwenden. Besser ist es nur Werte zu serialisieren, bei denen es auch Sinn macht.

Gut das serialisieren bei setKey kann man leicht automatisieren. Bei getKey muss die Funktion selbst erkennen können, ob der Wert vorher serialisiert wurde oder nicht.

Ich denke, ich werde jetzt noch zusätzlich die Information abspeichern, ob der Wert serialisiert wurde im extra Feld/Spalte.

Ich hoffe ihr konnten mir bis hierhin folgen. Was haltet ihr von dem Konzept oder habt ihr Anregungen?

Geändert von dago (28.10.2007 um 14:12 Uhr).
dago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session Sicherheitsfrage phpdev PHP-Programmierung 24 23.08.2007 22:38
SESSION übergabe automatisch? web2 PHP-Programmierung 3 28.02.2007 14:00
Mails empfangen / versenden "Access to default session denied" Robinson Allgemeine Java-Programmierung 0 14.12.2005 15:11
Session - Projekt Kommunikation DasMööp PHP-Programmierung 17 23.08.2005 00:02
[PHP] Daten per Session übergeben Ben Tutorials 0 14.12.2004 14:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:28 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44