ObjectsProvider.php 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Component\Console\Tests\Descriptor;
  11. use Symfony\Component\Console\Input\InputArgument;
  12. use Symfony\Component\Console\Input\InputDefinition;
  13. use Symfony\Component\Console\Input\InputOption;
  14. use Symfony\Component\Console\Tests\Fixtures\DescriptorApplication1;
  15. use Symfony\Component\Console\Tests\Fixtures\DescriptorApplication2;
  16. use Symfony\Component\Console\Tests\Fixtures\DescriptorCommand1;
  17. use Symfony\Component\Console\Tests\Fixtures\DescriptorCommand2;
  18. /**
  19. * @author Jean-François Simon <contact@jfsimon.fr>
  20. */
  21. class ObjectsProvider
  22. {
  23. public static function getInputArguments()
  24. {
  25. return [
  26. 'input_argument_1' => new InputArgument('argument_name', InputArgument::REQUIRED),
  27. 'input_argument_2' => new InputArgument('argument_name', InputArgument::IS_ARRAY, 'argument description'),
  28. 'input_argument_3' => new InputArgument('argument_name', InputArgument::OPTIONAL, 'argument description', 'default_value'),
  29. 'input_argument_4' => new InputArgument('argument_name', InputArgument::REQUIRED, "multiline\nargument description"),
  30. 'input_argument_with_style' => new InputArgument('argument_name', InputArgument::OPTIONAL, 'argument description', '<comment>style</>'),
  31. 'input_argument_with_default_inf_value' => new InputArgument('argument_name', InputArgument::OPTIONAL, 'argument description', INF),
  32. ];
  33. }
  34. public static function getInputOptions()
  35. {
  36. return [
  37. 'input_option_1' => new InputOption('option_name', 'o', InputOption::VALUE_NONE),
  38. 'input_option_2' => new InputOption('option_name', 'o', InputOption::VALUE_OPTIONAL, 'option description', 'default_value'),
  39. 'input_option_3' => new InputOption('option_name', 'o', InputOption::VALUE_REQUIRED, 'option description'),
  40. 'input_option_4' => new InputOption('option_name', 'o', InputOption::VALUE_IS_ARRAY | InputOption::VALUE_OPTIONAL, 'option description', []),
  41. 'input_option_5' => new InputOption('option_name', 'o', InputOption::VALUE_REQUIRED, "multiline\noption description"),
  42. 'input_option_6' => new InputOption('option_name', ['o', 'O'], InputOption::VALUE_REQUIRED, 'option with multiple shortcuts'),
  43. 'input_option_with_style' => new InputOption('option_name', 'o', InputOption::VALUE_REQUIRED, 'option description', '<comment>style</>'),
  44. 'input_option_with_style_array' => new InputOption('option_name', 'o', InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED, 'option description', ['<comment>Hello</comment>', '<info>world</info>']),
  45. 'input_option_with_default_inf_value' => new InputOption('option_name', 'o', InputOption::VALUE_OPTIONAL, 'option description', INF),
  46. ];
  47. }
  48. public static function getInputDefinitions()
  49. {
  50. return [
  51. 'input_definition_1' => new InputDefinition(),
  52. 'input_definition_2' => new InputDefinition([new InputArgument('argument_name', InputArgument::REQUIRED)]),
  53. 'input_definition_3' => new InputDefinition([new InputOption('option_name', 'o', InputOption::VALUE_NONE)]),
  54. 'input_definition_4' => new InputDefinition([
  55. new InputArgument('argument_name', InputArgument::REQUIRED),
  56. new InputOption('option_name', 'o', InputOption::VALUE_NONE),
  57. ]),
  58. ];
  59. }
  60. public static function getCommands()
  61. {
  62. return [
  63. 'command_1' => new DescriptorCommand1(),
  64. 'command_2' => new DescriptorCommand2(),
  65. ];
  66. }
  67. public static function getApplications()
  68. {
  69. return [
  70. 'application_1' => new DescriptorApplication1(),
  71. 'application_2' => new DescriptorApplication2(),
  72. ];
  73. }
  74. }