Viewing file: ShowCommand.php (2.02 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* * This file is part of Psy Shell. * * (c) 2012-2015 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace Psy\Command;
use Psy\Configuration; use Psy\Exception\RuntimeException; use Psy\Formatter\CodeFormatter; use Psy\Formatter\SignatureFormatter; use Psy\Output\ShellOutput; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface;
/** * Show the code for an object, class, constant, method or property. */ class ShowCommand extends ReflectingCommand { private $colorMode;
/** * @param null|string $colorMode (default: null) */ public function __construct($colorMode = null) { $this->colorMode = $colorMode ?: Configuration::COLOR_MODE_AUTO;
return parent::__construct(); }
/** * {@inheritdoc} */ protected function configure() { $this ->setName('show') ->setDefinition(array( new InputArgument('value', InputArgument::REQUIRED, 'Function, class, instance, constant, method or property to show.'), )) ->setDescription('Show the code for an object, class, constant, method or property.') ->setHelp( <<<HELP Show the code for an object, class, constant, method or property.
e.g. <return>>>> show \$myObject</return> <return>>>> show Psy\Shell::debug</return> HELP ); }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { list($value, $reflector) = $this->getTargetAndReflector($input->getArgument('value'));
try { $output->page(CodeFormatter::format($reflector, $this->colorMode), ShellOutput::OUTPUT_RAW); } catch (RuntimeException $e) { $output->writeln(SignatureFormatter::format($reflector)); throw $e; } } }
|