Задать вопрос
Gramcoder
@Gramcoder

Как получить свойства класса по умолчанию?

Как можно получить своства класса указанные по умолчанию?

В чем суть.
Есть класс 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, как лучше всего доставать значение свойства для производительности?
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 2
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
class ReflectionProperty
Ответ написан
Комментировать
Статическим методом но без создания объекта, как это сделано у вас в примере.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект