Как можно получить своства класса указанные по умолчанию?
В чем суть.
Есть класс
Handler
, в нем происходит поиск и запуск нужного класса-команды. В каждом классе-команде есть свойство
protected $name
, в котором указано название этой команды. Собственно по названию происходит идентификация и запуск. Все классы-команды наследуют один общий класс
Command
с основными методами. Этих классов-команд множество. И вот возник вопрос, как лучше всего производить такого рода поиск?
class StartCommand extends Command
{
protected $name = 'start';
public function handle()
{
//
}
}
Одно из решений это добавить метод
getName
в родительский класс
Command
и получать значение свойства таким образом:
$commands = [
\StartCommand::class
];
$names = [];
foreach($commands as $commandClassName) {
$name[] = (new $commandClassName)->getName();
}
Другое решение состоит в том, чтобы указывать имя статическим свойством:
$name[] = $commandClassName::getName();
// или
$name[] = (new $commandClassName::$name;
И допустим таких классов около 100, как лучше всего доставать значение свойства для производительности?