/**
  * Get parameter value.
  *
  * @param mixed $value
  *
  * @return array|mixed
  */
 public function getParameterValue($value)
 {
     $value = $this->parameter->getResolver()->resolveValue($this->parameter->getResolver()->unescapeValue($value));
     if (is_array($value)) {
         foreach ($value as $index => $val) {
             if (is_array($val)) {
                 $value[$index] = array_map(array($this, 'resolveParameters'), $val);
             } else {
                 $value[$index] = $this->getParameterValue($val);
             }
         }
     } elseif ($value instanceof Reference) {
         $value = $this->container->get((string) $value);
     }
     return $value;
 }
 /**
  * Compile parameter.
  *
  * Parameter become immutable.
  *
  * @return static
  */
 public function compile()
 {
     $this->parameter->getResolver()->resolve();
     $this->parameter = new ImmutableParameterBag($this->parameter->all());
     return $this;
 }