����JFIF��H�H����Exif��MM�*���� ��3����V�����3������3�(��������������������3�����
Server IP : 74.208.127.88 / Your IP : 216.73.216.19 Web Server : Apache/2.4.41 (Ubuntu) System : Linux ubuntu 5.4.0-163-generic #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 x86_64 User : www-data ( 33) PHP Version : 7.4.3-4ubuntu2.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/self/root/proc/thread-self/root/usr/share/phpmyadmin/libraries/classes/Di/ |
Upload File : |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Holds the PhpMyAdmin\Di\ReflectorItem class * * @package PhpMyAdmin\Di */ namespace PhpMyAdmin\Di; /** * Reflector manager * * @package PhpMyAdmin\Di */ abstract class ReflectorItem implements Item { /** @var Container */ private $_container; /** @var \Reflector */ private $_reflector; /** * Constructor * * @param Container $container Container * @param mixed $definition Definition */ public function __construct(Container $container, $definition) { $this->_container = $container; $this->_reflector = self::_resolveReflector($definition); } /** * Invoke the reflector with given parameters * * @param array $params Parameters * @return mixed */ protected function invoke(array $params = array()) { $args = array(); $reflector = $this->_reflector; if ($reflector instanceof \ReflectionClass) { $constructor = $reflector->getConstructor(); if (isset($constructor)) { $args = $this->_resolveArgs( $constructor->getParameters(), $params ); } return $reflector->newInstanceArgs($args); } /** @var \ReflectionFunctionAbstract $reflector */ $args = $this->_resolveArgs( $reflector->getParameters(), $params ); if ($reflector instanceof \ReflectionMethod) { /** @var \ReflectionMethod $reflector */ return $reflector->invokeArgs(null, $args); } /** @var \ReflectionFunction $reflector */ return $reflector->invokeArgs($args); } /** * Getting required arguments with given parameters * * @param \ReflectionParameter[] $required Arguments * @param array $params Parameters * *@return array */ private function _resolveArgs($required, array $params = array()) { $args = array(); foreach ($required as $param) { $name = $param->getName(); $type = $param->getClass(); if (isset($type)) { $type = $type->getName(); } if (isset($params[$name])) { $args[] = $params[$name]; } elseif (is_string($type) && isset($params[$type])) { $args[] = $params[$type]; } else { try { $content = $this->_container->get($name); if (isset($content)) { $args[] = $content; } elseif (is_string($type)) { $args[] = $this->_container->get($type); } else { $args[] = null; } } catch (NotFoundException $e) { $args[] = null; } } } return $args; } /** * Resolve the reflection * * @param mixed $definition Definition * * @return \Reflector */ private static function _resolveReflector($definition) { if (function_exists($definition)) { return new \ReflectionFunction($definition); } if (is_string($definition)) { $definition = explode('::', $definition); } if (!isset($definition[1])) { return new \ReflectionClass($definition[0]); } return new \ReflectionMethod($definition[0], $definition[1]); } }