ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 3.137.213.51 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/fund.old.nicn.gov.ng/funds-old/vendor/psy/psysh/src/Psy/Command/ListCommand/ |
Upload File : |
<?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\ListCommand; use Psy\Context; use Psy\VarDumper\Presenter; use Symfony\Component\Console\Input\InputInterface; /** * Variable Enumerator class. */ class VariableEnumerator extends Enumerator { private static $specialVars = array('_', '_e'); private $context; /** * Variable Enumerator constructor. * * Unlike most other enumerators, the Variable Enumerator needs access to * the current scope variables, so we need to pass it a Context instance. * * @param Presenter $presenter * @param Context $context */ public function __construct(Presenter $presenter, Context $context) { $this->context = $context; parent::__construct($presenter); } /** * {@inheritdoc} */ protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) { // only list variables when no Reflector is present. if ($reflector !== null || $target !== null) { return; } // only list variables if we are specifically asked if (!$input->getOption('vars')) { return; } $showAll = $input->getOption('all'); $variables = $this->prepareVariables($this->getVariables($showAll)); if (empty($variables)) { return; } return array( 'Variables' => $variables, ); } /** * Get scope variables. * * @param bool $showAll Include special variables (e.g. $_). * * @return array */ protected function getVariables($showAll) { $scopeVars = $this->context->getAll(); uksort($scopeVars, function ($a, $b) { if ($a === '_e') { return 1; } elseif ($b === '_e') { return -1; } elseif ($a === '_') { return 1; } elseif ($b === '_') { return -1; } else { // TODO: this should be natcasesort return strcasecmp($a, $b); } }); $ret = array(); foreach ($scopeVars as $name => $val) { if (!$showAll && in_array($name, self::$specialVars)) { continue; } $ret[$name] = $val; } return $ret; } /** * Prepare formatted variable array. * * @param array $variables * * @return array */ protected function prepareVariables(array $variables) { // My kingdom for a generator. $ret = array(); foreach ($variables as $name => $val) { if ($this->showItem($name)) { $fname = '$' . $name; $ret[$fname] = array( 'name' => $fname, 'style' => in_array($name, self::$specialVars) ? self::IS_PRIVATE : self::IS_PUBLIC, 'value' => $this->presentRef($val), // TODO: add types to variable signatures ); } } return $ret; } }