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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show annotations)
Thu Feb 27 16:36:02 2003 UTC (21 years, 6 months ago) by joko
Branch: MAIN
Changes since 1.4: +6 -3 lines
re-allowed underscores ('_') in php classnames
does this break something?

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

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