/[cvs]/nfo/php/libs/org.netfrag.glib/utils/LinkBuilder.php
ViewVC logotype

Annotation of /nfo/php/libs/org.netfrag.glib/utils/LinkBuilder.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Sun Apr 6 04:35:58 2003 UTC (21 years, 3 months ago) by joko
Branch: MAIN
Changes since 1.1: +22 -9 lines
comments, prepared for phpDocumentor

1 jonen 1.1 <?php
2    
3     /**
4 joko 1.2 * $Id: LinkBuilder.php,v 1.1 2003/04/06 01:35:25 jonen Exp $
5 jonen 1.1 *
6 joko 1.2 * $Log: LinkBuilder.php,v $
7     * Revision 1.1 2003/04/06 01:35:25 jonen
8     * + initial commit
9 jonen 1.1 *
10     */
11    
12     /**
13 joko 1.2 * LinkBuilder
14     *
15     * This implements a persistent storage for variables needed at links
16 jonen 1.1 * where unique id are used to different the temporarly stored variables
17     *
18 joko 1.2 * It's similar to James A. Duncan's "Pixie", see
19     * Pixie - The magic data pixie
20     * http://search.cpan.org/author/JDUNCAN/Pixie-2.06/
21     * But that one - of course - is somehow more sophisticated. It offers multiple
22     * storage implementations for your data payloads and also seems to implement
23     * some locking strategies. (Pixie::LockStrat & Co.)
24     *
25     * However, their core concepts are comparable:
26     * Expect an arbitrary variable as "data container" (hash prefered!?) and save it
27     * away assigning an unique identifier for the slot the actual payload lives inside
28     * the storage.
29     * This identifier gets returned as a result of the save/store/create operation and
30     * can be used later to get to the persisted data via a load/restore/retrieve operation.
31 jonen 1.1 *
32 joko 1.2 * @todo prevent HUGE SESSION! delete session entry after all needed stuff(entries) is loaded to!!
33     * @todo is php::CreateGUID expensive? review!
34 jonen 1.1 *
35     * @author Sebastian Utz <seut@tunemedia.de>
36     * @package org.netfrag.glib
37     * @name LinkBuilder
38     *
39     */
40     class LinkBuilder {
41    
42     function LinkBuilder() {
43     php::session_register_safe('lb_state');
44     }
45    
46     function generate_GUID() {
47     return php::CreateGUID();
48     }
49    
50     function save($args, $guid="") {
51     if(!$guid) { $guid = $this->generate_GUID(); }
52     $this->save_to_session($args, $guid);
53     return $guid;
54     }
55    
56     function load($guid) {
57     $tmp = $this->load_from_session($guid);
58     //debug
59     //print "LinkBuilder::load($guid)<br>";
60     //print Dumper($tmp);
61     return $tmp;
62     }
63    
64     function save_to_session($args, $guid) {
65     global $lb_state;
66     $classname = get_class($this);
67     $lb_state[$classname][$guid] = $args;
68     }
69    
70     function load_from_session($guid) {
71     global $lb_state;
72     $classname = get_class($this);
73     //print Dumper($_SESSION);
74     return $lb_state[$classname][$guid];
75     }
76    
77     }
78    
79    
80     ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed