* copyright: Michael Dobretsberger * * TODO: get parameter delivery working fine (without a warning) */ if(!defined('_C_OBJECTHANDLER')) { define('_C_OBJECTHANDLER', true); class ObjectHandler { function returnObject($sNameOfClass, $mParams = NULL) { if(!is_null($mParams)) return new $sNameOfClass($mParams); return new $sNameOfClass; } // end of () } // end of class } // end if /** * filename: Core.class.php * require: ObjectHandler.class.php * created: 24.05.03 * last change: 25.05.03 * author: Michael Dobretsberger * copyright: Michael Dobretsberger * * TODO: get parameter delivery working fine (without a warning) */ error_reporting(E_ALL); if(!defined('_C_CORE')) { define('_C_CORE', true); class Core extends ObjectHandler { var $aObjects; function Core() { return; } // end of Core() function newObject($sNameOfObject, $sNameOfClass, $mParams = NULL) { if(!is_null($mParams)) $this->$sNameOfObject = parent::returnObject($sNameOfClass, $mParams); $this->$sNameOfObject = parent::returnObject($sNameOfClass); if(!isset($this->$sNameOfObject) | !is_object($this->$sNameOfObject)) return false; $this->aObjects[] = $sNameOfObject; return false; } // end of newObject() function loadNewObject($sNameOfClassFile, $sNameOfObject, $sNameOfClass, $mParams = NULL) { if(!include_once($sNameOfClassFile)) return false; return $this->newObject($sNameOfObject, $sNameOfClass, $mParams); } // end of loadNewObject() function clearByObject($sNameOfObject) { $nKey = array_search($sNameOfObject, $this->aObjects); if(is_numeric($nKey)) unset($this->aObjects[$nKey]); if(isset($this->$sNameOfObject)) unset($this->$sNameOfObject); if(!isset($this->aObjects[$nKey]) & !isset($this->$sNameOfObject)) return true; return false; } // end of clearByObject() function clearById($nObjectArrayId) { if(isset($this->aObjects[$nObjectArrayId])) { error_reporting(E_ALL - E_NOTICE); unset($this->$this->aObjects[$nObjectArrayId]); unset($this->aObjects[$nObjectArrayId]); error_reporting(_FRM_ERRORREP); if(!@isset($this->$this->aObjects[$nObjectArrayId]) & !isset($this->aObjects[$nObjectArrayId])) return true; } // end if return false; } // end of clearById() function getObjects() { return $this->aObjects; } // end of getObjects() } // end of class } // end if class FooClass { function FooHu() { echo("\nFooHu!!!\n\n"); } // end of FooHu() } // end of class header('Content-Type: text/plain'); $oCore = new Core(); $oCore->newObject('oFoo', 'FooClass'); // $oCore->oFoo->FooHu(); print_r($oCore->getObjects()); $oFoo = &$oCore->oFoo; $oFoo->FooHu(); $oCore->clearByObject('oFoo'); print_r($oCore->getObjects()); ?>