2015-08-17 17:00:26 -07:00
< ? 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\HttpKernel\Config ;
2016-04-20 09:56:34 -07:00
use Symfony\Component\Config\Resource\SelfCheckingResourceInterface ;
2015-08-17 17:00:26 -07:00
/**
* EnvParametersResource represents resources stored in prefixed environment variables .
*
* @ author Chris Wilkinson < chriswilkinson84 @ gmail . com >
2018-11-23 12:29:20 +00:00
*
* @ deprecated since version 3.4 , to be removed in 4.0
2015-08-17 17:00:26 -07:00
*/
2016-04-20 09:56:34 -07:00
class EnvParametersResource implements SelfCheckingResourceInterface , \Serializable
2015-08-17 17:00:26 -07:00
{
/**
* @ var string
*/
private $prefix ;
/**
* @ var string
*/
private $variables ;
/**
* @ param string $prefix
*/
public function __construct ( $prefix )
{
$this -> prefix = $prefix ;
$this -> variables = $this -> findVariables ();
}
/**
* { @ inheritdoc }
*/
public function __toString ()
{
return serialize ( $this -> getResource ());
}
/**
2018-11-23 12:29:20 +00:00
* @ return array An array with two keys : 'prefix' for the prefix used and 'variables' containing all the variables watched by this resource
2015-08-17 17:00:26 -07:00
*/
public function getResource ()
{
return array ( 'prefix' => $this -> prefix , 'variables' => $this -> variables );
}
/**
* { @ inheritdoc }
*/
public function isFresh ( $timestamp )
{
return $this -> findVariables () === $this -> variables ;
}
public function serialize ()
{
return serialize ( array ( 'prefix' => $this -> prefix , 'variables' => $this -> variables ));
}
public function unserialize ( $serialized )
{
2018-11-23 12:29:20 +00:00
if ( \PHP_VERSION_ID >= 70000 ) {
$unserialized = unserialize ( $serialized , array ( 'allowed_classes' => false ));
} else {
$unserialized = unserialize ( $serialized );
}
2015-08-17 17:00:26 -07:00
$this -> prefix = $unserialized [ 'prefix' ];
$this -> variables = $unserialized [ 'variables' ];
}
private function findVariables ()
{
$variables = array ();
foreach ( $_SERVER as $key => $value ) {
if ( 0 === strpos ( $key , $this -> prefix )) {
$variables [ $key ] = $value ;
}
}
ksort ( $variables );
return $variables ;
}
}