Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\HttpKernel\Config; Chris@0: Chris@0: use Symfony\Component\Config\Resource\SelfCheckingResourceInterface; Chris@0: Chris@0: /** Chris@0: * EnvParametersResource represents resources stored in prefixed environment variables. Chris@0: * Chris@0: * @author Chris Wilkinson Chris@14: * Chris@14: * @deprecated since version 3.4, to be removed in 4.0 Chris@0: */ Chris@0: class EnvParametersResource implements SelfCheckingResourceInterface, \Serializable Chris@0: { Chris@0: /** Chris@0: * @var string Chris@0: */ Chris@0: private $prefix; Chris@0: Chris@0: /** Chris@0: * @var string Chris@0: */ Chris@0: private $variables; Chris@0: Chris@0: /** Chris@0: * @param string $prefix Chris@0: */ Chris@0: public function __construct($prefix) Chris@0: { Chris@0: $this->prefix = $prefix; Chris@0: $this->variables = $this->findVariables(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function __toString() Chris@0: { Chris@0: return serialize($this->getResource()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @return array An array with two keys: 'prefix' for the prefix used and 'variables' containing all the variables watched by this resource Chris@0: */ Chris@0: public function getResource() Chris@0: { Chris@17: return ['prefix' => $this->prefix, 'variables' => $this->variables]; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function isFresh($timestamp) Chris@0: { Chris@0: return $this->findVariables() === $this->variables; Chris@0: } Chris@0: Chris@17: /** Chris@17: * @internal Chris@17: */ Chris@0: public function serialize() Chris@0: { Chris@17: return serialize(['prefix' => $this->prefix, 'variables' => $this->variables]); Chris@0: } Chris@0: Chris@17: /** Chris@17: * @internal Chris@17: */ Chris@0: public function unserialize($serialized) Chris@0: { Chris@14: if (\PHP_VERSION_ID >= 70000) { Chris@17: $unserialized = unserialize($serialized, ['allowed_classes' => false]); Chris@14: } else { Chris@14: $unserialized = unserialize($serialized); Chris@14: } Chris@0: Chris@0: $this->prefix = $unserialized['prefix']; Chris@0: $this->variables = $unserialized['variables']; Chris@0: } Chris@0: Chris@0: private function findVariables() Chris@0: { Chris@17: $variables = []; Chris@0: Chris@0: foreach ($_SERVER as $key => $value) { Chris@0: if (0 === strpos($key, $this->prefix)) { Chris@0: $variables[$key] = $value; Chris@0: } Chris@0: } Chris@0: Chris@0: ksort($variables); Chris@0: Chris@0: return $variables; Chris@0: } Chris@0: }