--- nfo/php/libs/org.netfrag.glib/Class/Inner.php 2003/03/03 21:26:30 1.1 +++ nfo/php/libs/org.netfrag.glib/Class/Inner.php 2003/03/28 03:03:49 1.8 @@ -1,32 +1,85 @@ + * @package org.netfrag.glib + * @name Class::Inner + * + */ + +/** + * Cvs-Log: + * + *
+ *  $Id: Inner.php,v 1.8 2003/03/28 03:03:49 joko Exp $
+ *
+ *  $Log: Inner.php,v $
+ *  Revision 1.8  2003/03/28 03:03:49  joko
+ *  purged old code
+ *
+ *  Revision 1.7  2003/03/11 02:28:11  joko
+ *  + fixed metadata for phpDocumentor
+ *
+ *  Revision 1.6  2003/03/11 02:23:02  joko
+ *  + fixed metadata for phpDocumentor
+ *
+ *  Revision 1.5  2003/03/11 02:04:36  joko
+ *  + fixed metadata for phpDocumentor
+ *
+ *  Revision 1.4  2003/03/11 01:42:59  joko
+ *  + fixed metadata for phpDocumentor
+ *
+ *  Revision 1.3  2003/03/11 01:12:53  joko
+ *  + fixed metadata for phpDocumentor
+ *
+ *  Revision 1.2  2003/03/05 18:54:43  joko
+ *  updated docu - phpDocumentor is very strict about its 'blocks'...
+ *
+ *  Revision 1.1  2003/03/03 21:26:30  joko
+ *  refactored from DesignPattern::Bridge
+ *
+ *  Revision 1.5  2003/02/27 18:09:56  joko
+ *  mungled mechanism to shift in and pass on arguments
+ *
+ *  Revision 1.4  2003/02/09 17:07:53  joko
+ *  + minor update related to new log level constants
+ *  + generic argument merger to show full constructor args
+ *
+ *  Revision 1.3  2003/02/03 14:46:57  joko
+ *  + wrapped calls to available initializers (constructors, declared startup methods)
+ *  - moved logger-code to DesignPattern::Logger
+ *
+ *  Revision 1.2  2003/02/03 05:01:27  joko
+ *  + now attributes can get passed in to the constructors
+ *
+ *  Revision 1.1  2003/02/03 03:33:48  joko
+ *  + initial commit
+ * 
+ * + */ + +/** + * This requires DesignPattern::Facade as a base class + * + */ loadModule('DesignPattern::Facade'); + +/** + * Class::Inner + * + * @author Andreas Motl + * @copyright (c) 2003 - All Rights reserved. + * @license GNU LGPL (GNU Lesser General Public License) + * + * @link http://www.netfrag.org/~joko/ + * @link http://www.gnu.org/licenses/lgpl.txt + * + * @package org.netfrag.glib + * @subpackage Class + * @name Class::Inner + * + */ class Class_Inner extends DesignPattern_Facade { /* @@ -54,20 +107,29 @@ //print Dumper($args); - foreach ($args[class_names] as $classname) { + foreach ($args[class_names] as $classname_inner) { // build objectname from classname // - make lowercase // - strip leading "Xyz_" ('Site_' here) - $objectname = $classname; + $objectname = $classname_inner; $objectname = str_replace('Site_', '', $objectname); // FIXME!!! $objectname = strtolower($objectname); // create new instance of helper object by classname // V1: - //$this->$objectname = &$this->_mkInstance($classname); + //$this->$objectname = &$this->_mkInstance($classname_inner); + // V2: - $this->$objectname = &php::mkInstance($classname); + + /** + * + * can do: (this is metadata supplied for Autodia, don't delete!) + * $this->_locator = new $classname_inner() + * + */ + + $this->$objectname = &php::mkInstance($classname_inner); // create additional references to helper object with other names if requested // the intention is (e.g.) to migrate objects over to new reference-names when development progresses and ... @@ -92,96 +154,7 @@ } - - -// --- old code - - function DesignPattern_Bridge_old() { - - $arg_list = func_get_args(); - $classname = array_shift($arg_list); - - // expand single argument - if (count($arg_list) == 1) { - $arg_list = $arg_list[0]; - } - $attributes = &$arg_list; - - //print Dumper($attributes); - - //print "init_bridge!
"; - //return $this->_mkInstance($classname, $attributes); - //$this->_init_logger("../core/var/log/logfile.txt", 1); - //parent::constructor(); - - // V1: - $this = $this->_mkInstance($classname, $attributes); - // V2: (don't do that - will crash your apache!!! - hehe - it's an infinite loop) - //$this = php::mkInstance($classname, $attributes); - - //parent::constructor(); -// $this->_init_logger("../core/var/log/logfile.txt", 1); - //print Dumper($this); - - //return $this; - } - - function &_mkInstance_old($classname, $attributes = null) { - parent::constructor(); - $this->log( get_class($this) . "->_mkInstance( classname $classname )" ); - if (isset($attributes)) { -//print Dumper($attributes); - -/* - // pass single argument 1:1 - if (count($attributes) == 1) { - $attributes_merged = $attributes[0]; - - - - // pass hash 1:1 - } elseif (is_hash($attributes)) { - $attributes_merged = $attributes; - - } else { - $attributes_merged = $attributes; - } -*/ - - $args_pass = array(); - for ($i=0; $i<=count($attributes); $i++) { - array_push($args_pass, '$attributes[' . $i . ']'); - } - - $arg_string = join(', ', $args_pass); - -/* - // merge entries of numerical indexed arrays together into one hash - } else { - $attributes_merged = array(); - foreach ($attributes as $entry) { - $attributes_merged = array_merge($attributes_merged, $entry); - } - } -*/ - -//print Dumper($attributes_merged); -//print Dumper($attributes); - //$instance = new $classname($attributes_merged); - //$instance = new $classname($attributes[0]); - $evalstr = 'return new $classname(' . $arg_string . ');'; - $instance = eval($evalstr); - //print $evalstr . "
"; - } else { - $instance = new $classname; - } - //$this->log("ok"); - return $instance; - } } - - - ?> \ No newline at end of file