Symfony3コンソールでは、ユーザがオプションを指定したときに、値を指定せずに指定したことをどのようにして知ることができますか?オプションを供給しないのとは対照的に?Symfony Consoleで値なしでオプションが提供されたかどうかを確認するには?
例として、次のコンソール構成をとります。
<?php
class MyCommand extends \Symfony\Component\Console\Command\Command
{
// ...
protected function configure()
{
$this->setName('test')
->setDescription('update an existing operation.')
->addOption(
'option',
null,
InputOption::VALUE_OPTIONAL,
'The ID of the operation to update.'
);
}
}
コマンドのヘルプが--option[=OPTION]
としてオプションを説明しますので、私はこの次の方法を呼び出すことができます。
bin/console test
bin/console test --option
bin/console test --option=foo
しかし、$input->getOption()
は、最初の2つの場合にNULL
を返します。 2番目のケースでは、TRUE
、またはオプションが提供されたことを示す何かを返すと思いました。
私はオプションが全く提供されておらず、提供されているが価値がないという違いを特定する方法を知らない。
違いを知らせる方法がない場合、InputOption::VALUE_OPTIONAL
のユースケースは何ですか?
感謝。まだこの機能が存在するのはなぜですか(あなただけではなく、一般的に)。私。コマンドが値を持っているときにオプションが提供されたことだけを識別できる場合、オプションがオプションの値を持つことができるのはなぜですか?誰かがそれをどのように使い分けていますか? – user2045006