Как передать класс PHP в качестве параметра функции построителя? - PullRequest
1 голос
/ 09 апреля 2020

Я реализовал построитель объектов, который берет имя класса и пытается создать новый объект экземпляра. Строитель пытается внедрить услуги, если таковые необходимы. Имя класса передается в виде строки в текущей реализации. Вот пример

$className = '\Example\Application\ServiceClass';
$service = CiContext::newInstance($className);

Однако это не совместимо с моей IDE (eclipse), и процесс рефакторинга не находит имя класса (в строковой форме).

Есть ли любой способ получить имя класса, как java делает?

Class classInstance = ServerClass.class;

В этом случае процесс рефакторинга находит ссылку на класс и меняет имя класса.

1 Ответ

0 голосов
/ 10 апреля 2020

Ну, PHP7 константа класса поддерживается для имени класса. Например, следующий код является правильным в PHP 7.4:

$service = CiContext::newInstance(\Example\Application\ServiceClass::class);

Это решит мою проблему, и среда IDE найдет использование класса.

С другой стороны, литерал класса будет поддерживать объекты тоже. Для получения дополнительной информации см. литерал класса для объекта

...