public function load($className, $forceReload = false)
    {
        $this->typeCheck->load(func_get_args());

        // Extension is already loaded ...
        if (!$forceReload && $this->isLoaded($className)) {
            return $this->extensions[$className];
        }

        // Obtain a reflector ...
        try {
            $reflector = new ReflectionClass($className);
        } catch (ReflectionException $e) {
            throw new Exception\InvalidExtensionException($className, $e);
        }

        // Verify interface ...
        if (!$reflector->implementsInterface('Eloquent\Typhoon\Extension\ExtensionInterface')) {
            throw new Exception\InvalidExtensionException($className);
        }

        return $this->extensions[$className] = $reflector->newInstanceArgs($this->constructorArguments);
    }
public function load($className, $forceReload = false)
    {
        $this->typeCheck->load(func_get_args());

        // Extension is already loaded ...
        if (!$forceReload && $this->isLoaded($className)) {
            return $this->extensions[$className];
        }

        // Obtain a reflector ...
        try {
            $reflector = new ReflectionClass($className);
        } catch (ReflectionException $e) {
            throw new Exception\InvalidExtensionException($className, $e);
        }

        // Verify interface ...
        if (!$reflector->implementsInterface('Eloquent\Typhoon\Extension\ExtensionInterface')) {
            throw new Exception\InvalidExtensionException($className);
        }

        return $this->extensions[$className] = $reflector->newInstanceArgs($this->constructorArguments);
    }
@param string  $className   The name of the extension class.
@param boolean $forceReload

@return ExtensionInterface