need help with my set() method as i'am trying to set my class instances in an array then call the ID key with a get method.. But it will not return the array with the instance of the class inside.
any suggestions and advice would be greatly appreciated.
namespace main;
interface iregistry
{
public static function instance();
public static function set($id , $class);
public static function get($id);
}
class registry implements iregistry
{
private static $classes=array();
private static $config=array();
private static $instance;
private function __construct()
{
}
private function __clone()
{
}
public static function instance()
{
if(! self::$instance instanceof self)
{
self::$instance = new self();
}
return self::$instance;
}
public static function set($id , $class)
{
static $init;
if(!isset(self::$instance->classes[$id]) && !\class_exists($class))
{
function __autoload($class)
{
require_once('libary/' . $class);
}
}
if(\class_exists($class))
{
$init = new $class;
}
self::$instance->classes[$id]= $init;
return self::$instance->classes[$id];
}
public static function get($id)
{
if(!isset(self::$instance->classes[$id]))
{
throw new \Exception(' The Object ID You Requested Does Not Exist ');
}
elseif(isset(self::$instance->classes[$id]))
{
return self::$instance->classes[$id];
}
}
}
testcase
use main\registry;
require_once('registry.class.php');
$reg = registry::instance();
$reg->set('display' , 'display.class.php');
try
{
$reg->get('display');
}
catch(Exception $e)
{
echo $e->getmessage();
}
Solution found.