以编程方式获取 artisan 命令签名
Get artisan command signature programmatically
我正在尝试从我的控制器获取 Laravel 中自定义命令的一些信息,但我不知道使用哪种方法获取命令签名或命令的其他信息。实际上,我有一个带有命令列表的select框,选择一个选项时,我的代码在back-end will 运行 and return select在文本区域显示。
我已阅读this question。
我也有 google laravel 来源,但找不到 artisan 方法来源的位置。
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.
}
- 有什么方法可以获取命令签名或其他信息吗?
- 在哪里可以找到 artisan 命令方法源代码?
据我所知,您是正确的,Laravel 命令不提供 getter 签名。作为替代方案,您可以查看以下解决方法。
- 您可以使用
$name
作为签名。
protected $name = 'app:do:something';
我不确定这是否是常见(或最佳)做法,但它似乎可以解决问题。
- 如果这不适合您,您可以实施和扩展您自己的
CommandWithSignature
(或 SignatureAwareTrait
),它公开了一个 getSignature()
方法。
public class CommandWithSignature {
protected $signature;
public function getSignature(): string
{
return $this->signature;
}
}
我正在尝试从我的控制器获取 Laravel 中自定义命令的一些信息,但我不知道使用哪种方法获取命令签名或命令的其他信息。实际上,我有一个带有命令列表的select框,选择一个选项时,我的代码在back-end will 运行 and return select在文本区域显示。
我已阅读this question。 我也有 google laravel 来源,但找不到 artisan 方法来源的位置。
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.
}
- 有什么方法可以获取命令签名或其他信息吗?
- 在哪里可以找到 artisan 命令方法源代码?
据我所知,您是正确的,Laravel 命令不提供 getter 签名。作为替代方案,您可以查看以下解决方法。
- 您可以使用
$name
作为签名。
protected $name = 'app:do:something';
我不确定这是否是常见(或最佳)做法,但它似乎可以解决问题。
- 如果这不适合您,您可以实施和扩展您自己的
CommandWithSignature
(或SignatureAwareTrait
),它公开了一个getSignature()
方法。
public class CommandWithSignature {
protected $signature;
public function getSignature(): string
{
return $this->signature;
}
}