Локализация консоли Artisan - PullRequest
       11

Локализация консоли Artisan

0 голосов
/ 05 октября 2018

Я пишу программу командной строки для моего приложения Laravel и хотел бы, чтобы оно было локализуемым.Поскольку текст справки для команды определен как часть переменной класса $signature, я попытался создать его следующим образом:

/**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = sprintf(
    "myapp:command {--i|id %s}",
    __("This is some help text for the ID")
);

Однако я получаю это сообщение об ошибке:

Неустранимая ошибка PHP: выражение константы содержит недопустимые операции

Я предполагаю, что protected переменные класса обрабатываются как константы, так как я могу предоставить правильно локализуемую строку для текста справки?Можно ли каким-то образом предоставить текст после создания объекта?

1 Ответ

0 голосов
/ 05 октября 2018

Функции не могут использоваться в объявлениях свойств, но они могут использоваться в конструкторах, это прекрасно работает:

/**
 * Create a new command instance.
 *
 * @return void
 */
public function __construct()
{
    $this->signature = sprintf(
        "myapp:command {--i|id %s}",
        __("This is some help text for the ID")
    );
    parent::__construct();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...