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

Annotation of /nfo/php/libs/org.netfrag.glib/DesignPattern/Object.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations)
Sat Feb 22 16:34:16 2003 UTC (21 years, 7 months ago) by joko
Branch: MAIN
Changes since 1.3: +5 -1 lines
+ minor fix: can seperate namespace identifier with slashes ('/') now

1 joko 1.1 <?
2     // ---------------------------------------------------------------------------
3 joko 1.4 // $Id: Object.php,v 1.3 2003/02/09 17:16:06 joko Exp $
4 joko 1.1 // ---------------------------------------------------------------------------
5 joko 1.2 // $Log: Object.php,v $
6 joko 1.4 // Revision 1.3 2003/02/09 17:16:06 joko
7     // + handling arguments perl style ;-)
8     //
9 joko 1.3 // Revision 1.2 2003/02/03 05:01:48 joko
10     // + now attributes can get passed in to the constructors
11     //
12 joko 1.2 // Revision 1.1 2003/02/03 03:33:48 joko
13     // + initial commit
14     //
15 joko 1.1 // ---------------------------------------------------------------------------
16    
17    
18     /*
19     class DesignPattern_Object {
20     function DesignPattern_Object() {
21    
22     }
23     }
24     */
25    
26     function _ns2file($nsName) {
27     if ($filename = str_replace('::', '/', $nsName)) {
28     $filename .= '.php';
29     return $filename;
30     }
31     }
32    
33 joko 1.3 function mkObject() {
34     $arg_list = func_get_args();
35     //print Dumper($arg_list);
36     $namespacedClassname = array_shift($arg_list);
37     if (strstr($namespacedClassname, '_')) {
38     print "mkObject: unallowed character in namespaced classname: '_' ($namespacedClassname)<br/>";
39     return;
40     }
41     //print "class: $classname<br>";
42     $attributes = $arg_list;
43 joko 1.1 $classname = $namespacedClassname;
44     if (loadModule($namespacedClassname)) {
45     $classname = str_replace('::', '_', $namespacedClassname);
46 joko 1.4 $classname = str_replace('/', '_', $classname);
47 joko 1.1 }
48 joko 1.2 $obj = new DesignPattern_Bridge($classname, $attributes);
49 joko 1.1 return $obj;
50     }
51    
52     function loadModule($namespacedClassname) {
53     if ($filename = _ns2file($namespacedClassname)) {
54     require_once($filename);
55     return 1;
56     }
57     }
58    
59     ?>

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