Пример #1
0
 public function inject(Container $container, $service, array $serviceConfig)
 {
     $propConfig = array();
     if (array_key_exists('props', $serviceConfig)) {
         $propConfig = $serviceConfig['props'];
     }
     foreach ($propConfig as $propName => $propValue) {
         $convertedValue = $container->resolve($propValue);
         $service->{$propName} = $convertedValue;
     }
     return true;
 }
Пример #2
0
 public function encapsulate(Container $container, $object, array $serviceConfig)
 {
     if (array_key_exists('interceptor', $serviceConfig)) {
         foreach ($serviceConfig['interceptor'] as $interceptorName) {
             $interceptor = $container->resolve($interceptorName);
             if (!is_object($interceptor)) {
                 throw new \RuntimeException('The interceptor ' . $interceptorName . ' does not reference a known service');
             }
             $interceptor->setDecorated($object);
             $object = $interceptor;
         }
     }
     return $object;
 }