/[cvs]/nfo/php/libs/org.netfrag.glib/Application/Request/HttpController.php
ViewVC logotype

Contents of /nfo/php/libs/org.netfrag.glib/Application/Request/HttpController.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Sat Mar 1 21:11:18 2003 UTC (21 years, 5 months ago) by joko
Branch: MAIN
+ initial commit

1 <?php
2
3 /**
4 * This file contains the concrete Application::Request::Http Controller class.
5 *
6 * @author Andreas Motl <andreas.motl@ilo.de>
7 * @package org.netfrag.glib
8 * @module Application::Request::HttpController
9 *
10 */
11
12 /**
13 * $Id: MVC.php,v 1.2 2003/03/01 16:53:57 joko Exp $
14 *
15 * $Log: MVC.php,v $
16 *
17 */
18
19
20 /**
21 * ---
22 *
23 *
24 * @author Andreas Motl <andreas.motl@ilo.de>
25 * @copyright (c) 2003 - All Rights reserved.
26 * @license GNU LGPL (GNU Lesser General Public License)
27 *
28 * @author-url http://www.netfrag.org/~joko/
29 * @license-url http://www.gnu.org/licenses/lgpl.txt
30 *
31 * @package org.netfrag.glib
32 * @module Application::Request::HttpController
33 *
34 */
35
36 /**
37 * Todo:
38 *
39 * o xyz
40 * o bla, bli, blub
41 *
42 *
43 */
44
45
46 loadModule('Application::Request::BaseController');
47 class Application_Request_HttpController extends Application_Request_BaseController {
48
49 /**
50 * The constructor ...
51 * ... just does nothing.
52 *
53 * @param registry
54 */
55 function Application_Request_HttpController(&$request) {
56 //print Dumper($request);
57 //exit;
58 // propagate request data
59 $this->set_request($request);
60 }
61
62 function get_request() {
63 return array_join_merge($_GET, $_POST);
64 }
65
66 function perform(&$metadata) {
67
68 //print "model: " . Dumper($metadata);
69 //print "request: " . Dumper($this->get_request());
70 $request_raw = $this->get_request();
71
72 // 1. map it! mungle request and model together - generic processing here!
73 $request_mapped = array();
74
75 // check all areas
76 foreach ($metadata[areas] as $area_name) {
77 $area_metadata = $metadata[area][$area_name];
78 $http_arg_key = $area_metadata[query_arg];
79 if (in_array($http_arg_key, array_keys($request_raw))) {
80 $request_mapped[$area_name] = $request_raw[$http_arg_key];
81 }
82 }
83
84 // trace
85 //print Dumper($request_mapped);
86 //exit;
87
88 /*
89
90 // set default identifier if still empty
91 if ($page_ident = $this->request['ap']) {
92 $this->_pageIdent = $page_ident;
93
94 } elseif ($topic_ident = $this->request['t']) {
95 $this->_topicIdent = $topic_ident;
96
97 } else {
98 $this->_pageIdent = 'overview';
99 $this->_topicIdent = '';
100 }
101
102 //print "ident: " . $this->_pageIdent . "<br>";
103
104 */
105
106 // 2. rule it! mungle request through dispatching rules - lambda-style callbacks
107 $results = array();
108 foreach ($this->_rules as $rule) {
109 //$in = array();
110 $in = $request_mapped;
111 $out = array();
112 call_user_func($rule, &$in, &$out);
113 array_push($results, array( in => $in, out => $out));
114 }
115
116 // trace
117 //print Dumper($results);
118 //exit;
119
120 // 3. merge it! merge dispatching output ($_out!)
121 $final = array();
122 foreach ($results as $result) {
123 //print Dumper($result[out]);
124 $final = array_join_merge($final, $result[out]);
125 }
126
127 // trace
128 //print Dumper($final);
129 //exit;
130
131 return $final;
132
133 }
134
135
136
137 }
138
139 ?>

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