public static function getInstance($name = null) { // Get the late-static-binding version of __CLASS__ $class = get_called_class(); // Allow passing in a name to get multiple instances // If you do not pass a name, it functions as a singleton $name = !is_null($name) ?: $class; if (!Registry::contains($name)) { $instance = new $class(); Registry::add($instance, $name); } return Registry::get($name); }