first commit
This commit is contained in:
		
							
								
								
									
										79
									
								
								vendor/symfony/var-dumper/Caster/MemcachedCaster.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								vendor/symfony/var-dumper/Caster/MemcachedCaster.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| <?php | ||||
|  | ||||
| /* | ||||
|  * This file is part of the Symfony package. | ||||
|  * | ||||
|  * (c) Fabien Potencier <fabien@symfony.com> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
|  | ||||
| namespace Symfony\Component\VarDumper\Caster; | ||||
|  | ||||
| use Symfony\Component\VarDumper\Cloner\Stub; | ||||
|  | ||||
| /** | ||||
|  * @author Jan Schädlich <jan.schaedlich@sensiolabs.de> | ||||
|  */ | ||||
| class MemcachedCaster | ||||
| { | ||||
|     private static $optionConstants; | ||||
|     private static $defaultOptions; | ||||
|  | ||||
|     public static function castMemcached(\Memcached $c, array $a, Stub $stub, $isNested) | ||||
|     { | ||||
|         $a += [ | ||||
|             Caster::PREFIX_VIRTUAL.'servers' => $c->getServerList(), | ||||
|             Caster::PREFIX_VIRTUAL.'options' => new EnumStub( | ||||
|                 self::getNonDefaultOptions($c) | ||||
|             ), | ||||
|         ]; | ||||
|  | ||||
|         return $a; | ||||
|     } | ||||
|  | ||||
|     private static function getNonDefaultOptions(\Memcached $c) | ||||
|     { | ||||
|         self::$defaultOptions = self::$defaultOptions ?? self::discoverDefaultOptions(); | ||||
|         self::$optionConstants = self::$optionConstants ?? self::getOptionConstants(); | ||||
|  | ||||
|         $nonDefaultOptions = []; | ||||
|         foreach (self::$optionConstants as $constantKey => $value) { | ||||
|             if (self::$defaultOptions[$constantKey] !== $option = $c->getOption($value)) { | ||||
|                 $nonDefaultOptions[$constantKey] = $option; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $nonDefaultOptions; | ||||
|     } | ||||
|  | ||||
|     private static function discoverDefaultOptions() | ||||
|     { | ||||
|         $defaultMemcached = new \Memcached(); | ||||
|         $defaultMemcached->addServer('127.0.0.1', 11211); | ||||
|  | ||||
|         $defaultOptions = []; | ||||
|         self::$optionConstants = self::$optionConstants ?? self::getOptionConstants(); | ||||
|  | ||||
|         foreach (self::$optionConstants as $constantKey => $value) { | ||||
|             $defaultOptions[$constantKey] = $defaultMemcached->getOption($value); | ||||
|         } | ||||
|  | ||||
|         return $defaultOptions; | ||||
|     } | ||||
|  | ||||
|     private static function getOptionConstants() | ||||
|     { | ||||
|         $reflectedMemcached = new \ReflectionClass(\Memcached::class); | ||||
|  | ||||
|         $optionConstants = []; | ||||
|         foreach ($reflectedMemcached->getConstants() as $constantKey => $value) { | ||||
|             if (0 === strpos($constantKey, 'OPT_')) { | ||||
|                 $optionConstants[$constantKey] = $value; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $optionConstants; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user