lib/FSi/Component/Reflection/ReflectionClass.php
public static function factory($class)
    {
        if (is_object($class))
            $class = get_class($class);
        $class = (string)$class;
        if (!isset(self::$classes[$class]))
            self::$classes[$class] = new self($class);
        return self::$classes[$class];
    }
public static function factory($class)
    {
        if (is_object($class))
            $class = get_class($class);
        $class = (string)$class;
        if (!isset(self::$classes[$class]))
            self::$classes[$class] = new self($class);
        return self::$classes[$class];
    }
Constructs a new ReflectionClass object from class name and store it in cache.
If object already exists in cache it will taken from there instead of creating
new object

@param string|object $class
@return ReflectionClass