2016-08-12 19:34:27 +01:00
< ? php
2016-12-13 17:37:51 +00:00
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator ;
2016-08-12 19:34:27 +01:00
use Symfony\Component\DependencyInjection\ContainerInterface ;
use Symfony\Component\DependencyInjection\Container ;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException ;
use Symfony\Component\DependencyInjection\Exception\LogicException ;
use Symfony\Component\DependencyInjection\Exception\RuntimeException ;
use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag ;
/**
* This class has been auto - generated
* by the Symfony Dependency Injection Component .
2017-01-12 22:13:34 +00:00
*
* @ final since Symfony 3.3
2016-08-12 19:34:27 +01:00
*/
2016-10-22 17:25:15 +01:00
class Symfony_DI_PhpDumper_Test_EnvParameters extends Container
2016-08-12 19:34:27 +01:00
{
private $parameters ;
private $targetDirs = array ();
public function __construct ()
{
2016-10-22 17:25:15 +01:00
$dir = __DIR__ ;
for ( $i = 1 ; $i <= 5 ; ++ $i ) {
$this -> targetDirs [ $i ] = $dir = dirname ( $dir );
}
2016-08-12 19:34:27 +01:00
$this -> parameters = $this -> getDefaultParameters ();
$this -> services = array ();
$this -> methodMap = array (
'test' => 'getTestService' ,
);
$this -> aliases = array ();
}
2017-10-07 22:38:34 +01:00
public function getRemovedIds ()
{
return array (
'Psr\\Container\\ContainerInterface' => true ,
'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true ,
);
}
2016-08-12 19:34:27 +01:00
public function compile ()
{
2016-08-19 13:18:08 +01:00
throw new LogicException ( 'You cannot compile a dumped container that was already compiled.' );
}
public function isCompiled ()
{
return true ;
2016-08-12 19:34:27 +01:00
}
public function isFrozen ()
{
2016-08-19 13:18:08 +01:00
@ trigger_error ( sprintf ( 'The %s() method is deprecated since version 3.3 and will be removed in 4.0. Use the isCompiled() method instead.' , __METHOD__ ), E_USER_DEPRECATED );
2016-08-12 19:34:27 +01:00
return true ;
}
/**
2017-07-26 08:58:16 +01:00
* Gets the public 'test' shared service .
2016-08-12 19:34:27 +01:00
*
* @ return object A % env ( FOO ) % instance
*/
protected function getTestService ()
{
$class = $this -> getEnv ( 'FOO' );
2016-10-22 17:25:15 +01:00
return $this -> services [ 'test' ] = new $class ( $this -> getEnv ( 'Bar' ), 'foo' . $this -> getEnv ( 'string:FOO' ) . 'baz' , $this -> getEnv ( 'int:Baz' ));
2016-08-12 19:34:27 +01:00
}
public function getParameter ( $name )
{
2017-06-12 12:31:43 +01:00
if ( ! ( isset ( $this -> parameters [ $name ]) || isset ( $this -> loadedDynamicParameters [ $name ]) || array_key_exists ( $name , $this -> parameters ))) {
2017-08-12 10:16:19 +01:00
$name = $this -> normalizeParameterName ( $name );
2016-08-12 19:34:27 +01:00
2017-06-12 12:31:43 +01:00
if ( ! ( isset ( $this -> parameters [ $name ]) || isset ( $this -> loadedDynamicParameters [ $name ]) || array_key_exists ( $name , $this -> parameters ))) {
throw new InvalidArgumentException ( sprintf ( 'The parameter "%s" must be defined.' , $name ));
}
2016-08-12 19:34:27 +01:00
}
if ( isset ( $this -> loadedDynamicParameters [ $name ])) {
return $this -> loadedDynamicParameters [ $name ] ? $this -> dynamicParameters [ $name ] : $this -> getDynamicParameter ( $name );
}
return $this -> parameters [ $name ];
}
public function hasParameter ( $name )
{
2017-08-12 10:16:19 +01:00
$name = $this -> normalizeParameterName ( $name );
2016-08-12 19:34:27 +01:00
2017-06-12 12:31:43 +01:00
return isset ( $this -> parameters [ $name ]) || isset ( $this -> loadedDynamicParameters [ $name ]) || array_key_exists ( $name , $this -> parameters );
2016-08-12 19:34:27 +01:00
}
public function setParameter ( $name , $value )
{
throw new LogicException ( 'Impossible to call set() on a frozen ParameterBag.' );
}
public function getParameterBag ()
{
if ( null === $this -> parameterBag ) {
$parameters = $this -> parameters ;
foreach ( $this -> loadedDynamicParameters as $name => $loaded ) {
$parameters [ $name ] = $loaded ? $this -> dynamicParameters [ $name ] : $this -> getDynamicParameter ( $name );
}
$this -> parameterBag = new FrozenParameterBag ( $parameters );
}
return $this -> parameterBag ;
}
private $loadedDynamicParameters = array (
'bar' => false ,
2016-10-22 17:25:15 +01:00
'baz' => false ,
'json' => false ,
'db_dsn' => false ,
'env(json_file)' => false ,
2016-08-12 19:34:27 +01:00
);
private $dynamicParameters = array ();
/**
* Computes a dynamic parameter .
*
* @ param string The name of the dynamic parameter to load
*
* @ return mixed The value of the dynamic parameter
*
* @ throws InvalidArgumentException When the dynamic parameter does not exist
*/
private function getDynamicParameter ( $name )
{
switch ( $name ) {
case 'bar' : $value = $this -> getEnv ( 'FOO' ); break ;
2016-10-22 17:25:15 +01:00
case 'baz' : $value = $this -> getEnv ( 'int:Baz' ); break ;
case 'json' : $value = $this -> getEnv ( 'json:file:json_file' ); break ;
case 'db_dsn' : $value = $this -> getEnv ( 'resolve:DB' ); break ;
case 'env(json_file)' : $value = ( $this -> targetDirs [ 1 ] . '/array.json' ); break ;
2016-08-12 19:34:27 +01:00
default : throw new InvalidArgumentException ( sprintf ( 'The dynamic parameter "%s" must be defined.' , $name ));
}
$this -> loadedDynamicParameters [ $name ] = true ;
return $this -> dynamicParameters [ $name ] = $value ;
}
2017-08-12 10:16:19 +01:00
private $normalizedParameterNames = array (
'env(foo)' => 'env(FOO)' ,
2016-10-22 17:25:15 +01:00
'env(db)' => 'env(DB)' ,
2017-08-12 10:16:19 +01:00
);
private function normalizeParameterName ( $name )
{
if ( isset ( $this -> normalizedParameterNames [ $normalizedName = strtolower ( $name )]) || isset ( $this -> parameters [ $normalizedName ]) || array_key_exists ( $normalizedName , $this -> parameters )) {
$normalizedName = isset ( $this -> normalizedParameterNames [ $normalizedName ]) ? $this -> normalizedParameterNames [ $normalizedName ] : $normalizedName ;
if (( string ) $name !== $normalizedName ) {
@ trigger_error ( sprintf ( 'Parameter names will be made case sensitive in Symfony 4.0. Using "%s" instead of "%s" is deprecated since version 3.4.' , $name , $normalizedName ), E_USER_DEPRECATED );
}
} else {
$normalizedName = $this -> normalizedParameterNames [ $normalizedName ] = ( string ) $name ;
}
return $normalizedName ;
}
2016-08-12 19:34:27 +01:00
/**
* Gets the default parameters .
*
* @ return array An array of the default parameters
*/
protected function getDefaultParameters ()
{
return array (
2016-10-22 17:25:15 +01:00
'project_dir' => '/foo/bar' ,
2017-08-12 10:16:19 +01:00
'env(FOO)' => 'foo' ,
2016-10-22 17:25:15 +01:00
'env(DB)' => 'sqlite://%project_dir%/var/data.db' ,
2016-08-12 19:34:27 +01:00
);
}
}