Example #1
0
 /**
  * Display help for this console.
  *
  * @return ConsoleOptionParser
  */
 public function getOptionParser()
 {
     $parser = new ConsoleOptionParser('console');
     $parser->description('This shell provides a REPL that you can use to interact ' . 'with your application in an interactive fashion. You can use ' . 'it to run adhoc queries with your models, or experiment ' . 'and explore the features of CakePHP and your application.' . "\n\n" . 'You will need to have psysh installed for this Shell to work.');
     $parser->epilog('Thank you for baking with CakePHP!');
     return $parser;
 }
 /**
  * test setting the console epilog
  *
  * @return void
  */
 public function testEpilog()
 {
     $parser = new ConsoleOptionParser('test', false);
     $result = $parser->epilog('A test');
     $this->assertEquals($parser, $result, 'Setting epilog is not chainable');
     $this->assertEquals('A test', $parser->epilog(), 'getting value is wrong.');
     $result = $parser->epilog(['A test', 'something']);
     $this->assertEquals("A test\nsomething", $parser->epilog(), 'getting value is wrong.');
 }
Example #3
0
 /**
  * Build a parser from an array. Uses an array like
  *
  * ```
  * $spec = [
  *      'description' => 'text',
  *      'epilog' => 'text',
  *      'arguments' => [
  *          // list of arguments compatible with addArguments.
  *      ],
  *      'options' => [
  *          // list of options compatible with addOptions
  *      ],
  *      'subcommands' => [
  *          // list of subcommands to add.
  *      ]
  * ];
  * ```
  *
  * @param array $spec The spec to build the OptionParser with.
  * @param bool $defaultOptions Whether you want the verbose and quiet options set.
  * @return $this
  */
 public static function buildFromArray($spec, $defaultOptions = true)
 {
     $parser = new ConsoleOptionParser($spec['command'], $defaultOptions);
     if (!empty($spec['arguments'])) {
         $parser->addArguments($spec['arguments']);
     }
     if (!empty($spec['options'])) {
         $parser->addOptions($spec['options']);
     }
     if (!empty($spec['subcommands'])) {
         $parser->addSubcommands($spec['subcommands']);
     }
     if (!empty($spec['description'])) {
         $parser->description($spec['description']);
     }
     if (!empty($spec['epilog'])) {
         $parser->epilog($spec['epilog']);
     }
     return $parser;
 }