%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/11585/cwd/html/egp/vendor/codeception/codeception/src/Codeception/Util/ |
Upload File : |
<?php namespace Codeception\Util; use ReflectionException; use ReflectionParameter; use ReflectionProperty; use ReflectionMethod; /** * This class contains helper methods to help with common Reflection tasks. */ class ReflectionHelper { /** * Read a private property of an object. * * @param object $object * @param string $property * @param string|null $class * @return mixed * @throws ReflectionException */ public static function readPrivateProperty($object, $property, $class = null) { if (is_null($class)) { $class = $object; } $property = new ReflectionProperty($class, $property); $property->setAccessible(true); return $property->getValue($object); } /** * Invoke a private method of an object. * * @param object $object * @param string $method * @param array $args * @param string|null $class * @return mixed * @throws ReflectionException */ public static function invokePrivateMethod($object, $method, $args = [], $class = null) { if (is_null($class)) { $class = $object; } $method = new ReflectionMethod($class, $method); $method->setAccessible(true); return $method->invokeArgs($object, $args); } /** * Returns class name without namespace * * (does not use reflection actually) * * @param $object * @return mixed */ public static function getClassShortName($object) { $path = explode('\\', get_class($object)); return array_pop($path); } /** * Adapted from https://github.com/Behat/Behat/pull/1313 * * @param ReflectionParameter $parameter * @return string|null */ public static function getClassFromParameter(ReflectionParameter $parameter) { if (PHP_VERSION_ID < 70100) { $class = $parameter->getClass(); if ($class !== null) { return $class->name; } return $class; } $type = $parameter->getType(); if ($type === null || $type->isBuiltin()) { return null; } $typeString = $type->getName(); if ($typeString === 'self') { return $parameter->getDeclaringClass()->getName(); } elseif ($typeString === 'parent') { return $parameter->getDeclaringClass()->getParentClass()->getName(); } return $typeString; } /** * Infer default parameter from the reflection object and format it as PHP (code) string * * @param ReflectionParameter $param * * @return string */ public static function getDefaultValue(ReflectionParameter $param) { if ($param->isDefaultValueAvailable()) { if (method_exists($param, 'isDefaultValueConstant') && $param->isDefaultValueConstant()) { $constName = $param->getDefaultValueConstantName(); if (false !== strpos($constName, '::')) { list($class, $const) = explode('::', $constName); if (in_array($class, ['self', 'static'])) { $constName = '\\' . $param->getDeclaringClass()->getName() . '::' . $const; } elseif (substr($class, 0, 1) !== '\\') { $constName = '\\' . $constName; } } return $constName; } return self::phpEncodeValue($param->getDefaultValue()); } // Default to 'null' for PHP versions < 7.1. if (PHP_VERSION_ID < 70100) { return 'null'; } $type = $param->getType(); // Default to 'null' if explicitly allowed or there is no specific type hint. if (!$type || $type->allowsNull() || !$type->isBuiltin()) { return 'null'; } // Default value should match the parameter type if 'null' is NOT allowed. switch ($type->getName()) { case 'string': return "''"; case 'array': return '[]'; case 'boolean': return 'false'; case 'int': case 'integer': case 'float': case 'double': case 'number': case 'numeric': return '0'; default: return 'null'; } } /** * PHP encode value * * @param mixed $value * * @return string */ public static function phpEncodeValue($value) { if (is_array($value)) { return self::phpEncodeArray($value); } if (is_string($value)) { return json_encode($value); } return var_export($value, true); } /** * Recursively PHP encode an array * * @param array $array * * @return string */ public static function phpEncodeArray(array $array) { $isPlainArray = function (array $value) { return ((count($value) === 0) || ( (array_keys($value) === range(0, count($value) - 1)) && (0 === count(array_filter(array_keys($value), 'is_string')))) ); }; if ($isPlainArray($array)) { return '[' . implode(', ', array_map([self::class, 'phpEncodeValue'], $array)) . ']'; } $values = array_map( function ($key) use ($array) { return self::phpEncodeValue($key) . ' => ' . self::phpEncodeValue($array[$key]); }, array_keys($array) ); return '[' . implode(', ', $values) . ']'; } }