В Laravel имею следующие классы:
<?php namespace App\Models;
use Illuminate\Support\Str;
interface IParser {
public function get();
}
class ParserFactory {
public static function create($engine)
{
$class = Str::title($engine) . 'Parser';
return new $class;
}
}
class FirstParser implements IParser {
public function get()
{
echo 1;
}
}
Создаю класс следующим образом:
$engine = 'first';
$parser = ParserFactory::create($engine);
В итоге получаю ошибку:
FatalErrorException in Parser.php line 14: Class 'FirstParser' not found
Если в фабричном методе написать:
public static function create($engine)
{
$class = new FirstParser();
return $class;
}
То всё работает, класс создается. Не понимаю, почему с помощью new $class тоже самое не работает?