Class' OwnerService'未找到

时间:2017-05-24 14:07:44

标签: php laravel laravel-5

所以我想得到一个给定类的实例,这是我的代码:

class OwnerServiceFactory
{
    protected static $instance;
    protected static $provider;

    public function __construct($provider = 'xxx')
    {
        static::$provider = $provider;
    }

    final public static function getInstance()
    {
        $class = ucfirst(static::$provider)."OwnerService";

        if(!static::$instance) static::$instance = new $class();

        return static::$instance;
    }
}

OwnerService和OwnerServiceFactory类已在同一名称空间中。 问题出在这一行if(!static::$instance) static::$instance = new $class();

当我尝试我的代码时,我得到了 Class' OwnerService'找不到,当我用新的OwnerService()更改new $class();时,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

$class需要包含要从字符串实例化的完全限定类名。你说这些类是在命名空间中吗?所以$class需要包含该命名空间,现在我假设它只是OwnerService,PHP认为它存在于根命名空间\OwnerService中。