/[cvs]/nfo/php/libs/org.netfrag.glib/DesignPattern/AdapterProxy.php
ViewVC logotype

Contents of /nfo/php/libs/org.netfrag.glib/DesignPattern/AdapterProxy.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations)
Wed Mar 5 15:41:03 2003 UTC (21 years, 5 months ago) by joko
Branch: MAIN
Changes since 1.1: +15 -6 lines
updated docu (phpDocumentor testing....)

1 <?
2 /**
3 * This file contains the abstract MVCPage class.
4 * It inherits from phpHtmlLib's abstract PageWidget
5 * class to seamlessly integrate into its render queue.
6 *
7 * @author Andreas Motl <andreas.motl@ilo.de>
8 * @package org.netfrag.glib
9 * @name DesignPattern::AdapterProxy
10 *
11 */
12
13 /**
14 * $Id: AdapterProxy.php,v 1.1 2003/03/05 12:07:10 joko Exp $
15 *
16 * $Log: AdapterProxy.php,v $
17 * Revision 1.1 2003/03/05 12:07:10 joko
18 * + initial commit
19 *
20 * Revision 1.1 2003/03/03 22:11:08 joko
21 * + initial commit
22 *
23 *
24 */
25
26
27 /**
28 * This class is used to build content
29 * for an MVC controlled page. It instantiates
30 * an concrete helper MVC object which does the
31 * dispatching stuff. (phpHtmlLib::controller::WebMVC,
32 * inherited from the abstract DesignPattern::MVC)
33 *
34 * This class is established here to act as a wrapper
35 * bringing MVC and phpHtmlLib together.
36 *
37 * By now we inherit from the PageWidget, but this has
38 * to be broken using the ProxyPattern or s.th.l.th.
39 * I guess we'll have to dispatch to arbitrary concrete
40 * Page-implementations here in future...
41 *
42 *
43 * @author Andreas Motl <andreas.motl@ilo.de>
44 * @link http://www.netfrag.org/~joko/
45 * @copyright (c) 2003 - All Rights reserved.
46 * @license GNU LGPL (GNU Lesser General Public License)
47 * @link http://www.gnu.org/licenses/lgpl.txt
48 *
49 * @package org.netfrag.glib
50 * @name DesignPattern::AdapterProxy
51 *
52 */
53
54 /**
55 * Make sure we have the required parent class
56 */
57
58 //class Site_WebPageMVC extends PageWidget {
59 //loadModule('DesignPattern::MVC');
60
61 //require_once($phphtmllib."/widgets/PageWidget.inc");
62
63
64 // TODO: Learn TransparentProxy to do procedural calls instead
65 // of instantiating a component and even less code could be in here.....
66 // benefit: the TransparentProxy would be become even more powerful
67 // eeäähhh, to the master Proxy it goes......!!! This one calls the handler(s)!
68
69
70 //class Site_Adapter_php_Class {
71 //class Site_Adapter_php_IncludeFile extends GenericDataWidget {
72 class DesignPattern_AdapterProxy extends DesignPattern_TransparentProxy {
73
74 var $_adapter;
75 var $_adapter_module;
76 var $_adapter_options;
77
78 function &get_adapter() {
79 return $this->_adapter;
80 }
81
82 function &set_adapter(&$adapter) {
83 $this->_adapter = &$adapter;
84 }
85
86 // move this code to php::call_func!!! and wrap here!!!
87 function &create_adapter($m, $f, $a, $options = array()) {
88
89 // load required module
90 php::loadModule($m);
91
92 // V0: call-handler tests
93 //$m::$f();
94 //$res = call_user_func(array($m, $f));
95 //call_user_func("$m::$f");
96 //$m->$f();
97
98 // V1:
99 //$res = call_user_func( array( $m, $f ) );
100
101 // V2:
102 //return call_user_func( array( $m, $f ), $a );
103
104 if ($options[object]) {
105 $m = php::mkInstance($m);
106 }
107
108 // V3:
109 $this->set_adapter( call_user_func( array( &$m, $f ), $a ) );
110 return $this->get_adapter();
111
112 //print Dumper($res);
113 //exit;
114
115 // FIXME: use TransparentProxy for this!
116 // V1:
117 //$this = $res;
118 // V2:
119 //$this->make_transparent();
120
121 //return $res;
122
123 }
124
125 function set_adapter_module($name) {
126 $this->_adapter_module = $name;
127 }
128 function get_adapter_module() {
129 return $this->_adapter_module;
130 }
131 function set_adapter_options(&$options) {
132 $this->_adapter_options = &$options;
133 }
134 function get_adapter_options() {
135 return $this->_adapter_options;
136 }
137
138 }
139
140 ?>

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