diff --git a/core/Config.php b/core/Config.php index 6bc413be3..e1db5f441 100644 --- a/core/Config.php +++ b/core/Config.php @@ -118,7 +118,7 @@ class Config { * @return Config */ static public function inst() { - if (!self::$instance) self::$instance = new Config(); + if (!self::$instance) self::$instance = singleton('Config'); return self::$instance; } diff --git a/core/Core.php b/core/Core.php index a1fcfe949..1359ffffd 100644 --- a/core/Core.php +++ b/core/Core.php @@ -367,7 +367,7 @@ function singleton($className) { if(!is_string($className)) user_error("singleton() passed bad class_name: " . var_export($className,true), E_USER_ERROR); if(!isset($_SINGLETONS[$className])) { if(!class_exists($className)) user_error("Bad class to singleton() - $className", E_USER_ERROR); - $_SINGLETONS[$className] = Injector::inst()->get($className); + $_SINGLETONS[$className] = Object::strong_create($className,null, true); if(!$_SINGLETONS[$className]) user_error("singleton() Unknown class '$className'", E_USER_ERROR); } return $_SINGLETONS[$className]; diff --git a/core/Object.php b/core/Object.php index 3d710a456..1fb1c60a2 100755 --- a/core/Object.php +++ b/core/Object.php @@ -235,7 +235,8 @@ abstract class Object { $class = self::$strong_classes[$class]; } - return Injector::inst()->createWithArgs($class, $args); + $reflector = new ReflectionClass($class); + return $reflector->newInstanceArgs($args); } /** diff --git a/model/Versioned.php b/model/Versioned.php index 3ab719171..c2f5837b1 100644 --- a/model/Versioned.php +++ b/model/Versioned.php @@ -92,7 +92,7 @@ class Versioned extends DataExtension { * The first stage is consiedered the 'default' stage, the last stage is * considered the 'live' stage. */ - function __construct($stages=array('Stage','Live')) { + function __construct($stages) { parent::__construct(); if(!is_array($stages)) {