Artisan 控制台命令的本地化
Localization of an Artisan console command
我正在为我的 Laravel 应用编写一个 command line program,希望它可以本地化。由于该命令的帮助文本被定义为 $signature
class 变量的一部分,因此我尝试这样创建它:
/**
* 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 Fatal error: Constant expression contains invalid operations
我假设 protected
class 变量被视为常量,那么如何为帮助文本提供可正确本地化的字符串?有什么方法可以在实例化对象后提供文本吗?
函数不能在 属性 声明中使用,但它们可以在构造函数中使用,这很好用:
/**
* 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();
}
我正在为我的 Laravel 应用编写一个 command line program,希望它可以本地化。由于该命令的帮助文本被定义为 $signature
class 变量的一部分,因此我尝试这样创建它:
/**
* 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 Fatal error: Constant expression contains invalid operations
我假设 protected
class 变量被视为常量,那么如何为帮助文本提供可正确本地化的字符串?有什么方法可以在实例化对象后提供文本吗?
函数不能在 属性 声明中使用,但它们可以在构造函数中使用,这很好用:
/**
* 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();
}