Получить подпись команды ремесленника программно - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь получить некоторую информацию о моей пользовательской команде в Laravel от моего контроллера, но я не знаю, какой метод получить подпись команды или другую информацию о команде. На самом деле у меня есть поле выбора со списком команд, при выборе опции мой код в фоновом режиме будет запускаться и возвращать информацию о выбранной команде, а затем отображаться в текстовой области.

Я прочитал этот вопрос . Я также Google laravel источник, но не мог найти, где источник метода ремесленника размещен.

foreach(Artisan::all() as $key=>$command)
{
 echo $command->getDescription(); // show description
 echo $command->getName(); // show name
 echo $command->getSignature(); // error because this method doesn't exist.
}
  1. Есть ли способ получить подпись команды или другую информацию?
  2. Где найти источник метода команды ремесленника?

1 Ответ

1 голос
/ 11 июля 2019

Из того, что я вижу, вы правы, команды Laravel не предлагают геттер для подписей. В качестве альтернативы вы можете рассмотреть следующие обходные пути.

  1. Вы можете использовать $name в качестве подписи.
protected $name = 'app:do:something';

Я не уверен, является ли это обычной (или лучшей) практикой, но, похоже, это помогает.

  1. Если это не подходит вам, вы можете реализовать и расширить свой собственный CommandWithSignature (или SignatureAwareTrait), который предоставляет метод getSignature().
public class CommandWithSignature {
    protected $signature;

    public function getSignature(): string
    {
        return $this->signature;
    }
}
...