Stasgar
@Stasgar
Обученная макака

Namespac'ы и создание объекта класса из строки с его названеим?

В общем у меня есть набор классов с названиями ServiceXX, где XX - изменяющаяся строка.
Я использую Yii2, namespace класса прописываю через use.

namespace app\modules\tracking\classes;
use app\modules\tracking\classes\ServiceFI;
***
$serviceName = 'ServiceFI';
$service = new $serviceName;

Выходит ошибка "Class 'ServiceFI' not found".

Соответственно если использовать запись:
$serviceName = 'app\modules\tracking\classes\ServiceFI';
$service = new $serviceName;

То объект создается корректно.

Возможно каким-нибудь образом заставить искать по предоставленному неймспейсу?
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
@McBernar
$serviceName = 'ServiceFI';
$model = 'app\\modules\\tracking\\classes\\' . $serviceName;
$service = new $model;
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
На autoload кидать файлы не пробовали?
Ответ написан
GreyCrew
@GreyCrew
Full-stack developer
Хабр вам в помощь
Ответ написан
ivaaaan
@ivaaaan
PHP developer
Попробуйте так:

use app\modules\tracking\classes\ServiceFI;

$class = ServiceFI::class;
$model = new $class;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы