Я пытаюсь создать класс (работающий как фабричный класс) в моем приложении Zend Expressive следующим образом:
declare(strict_types=1);
namespace App\Install\Factory;
use App\Install\Model as Models;
use App\Install\Abstracts\AttributeInterface;
class AttributeEntityFactory{
public static function create($type1 ='Attribute') : AttributeInterface
{
$resolvedClass = "Models\\$type1";
$resolvedClass1 = 'Models\\'.$type1;
//return new $resolvedClass();
//return new $resolvedClass1();
return new Models\Attribute();
}
}
Приведенный выше код отлично работает для меня.Однако, если попытаться использовать любой из двух других операторов возврата, он покажет
Класс 'Models \ Attribute' не найден
Как мне добиться динамической реализации?
Код класса атрибута выглядит следующим образом:
namespace App\Install\Model;
use App\Install\Abstracts\AttributeInterface;
class Attribute implements AttributeInterface
{
protected $attribute;
public function setAttribute($attribute)
{
$this->attribute = $attribute;
}
public function getAttribute()
{
return $this->attribute;
}
}
Моя версия PHP:
PHP 7.2.13 (cli) (построено: 14 декабря 2018 04:20:16) (NTS)