public function __construct(FacebookUserServiceInterface $userService, Config $config)
 {
     parent::__construct($userService);
     $this->config = $config->getConfig('utility.Facebook');
     $this->appId = $this->config->get('app_id');
     $this->secret = $this->config->get('secret');
     $this->permissions = $this->config->get('permissions');
     $this->redirectUrl = $config->get('global.base_url') . $config->get('global.uri');
     $this->siteName = $config->get('global.site_name');
 }
 public function __construct(DataAccessFactory $daoFactory, Config $config = null, $user = null)
 {
     $this->daoFactory = $daoFactory;
     $this->config = $config;
     if ($config && $config->get(static::UTILITY_CONFIG_SECTION)) {
         $utilConfig = $config->getConfig(static::UTILITY_CONFIG_SECTION);
     } else {
         $utilConfig = $config;
     }
     $this->utilFactory = new UtilityFactory($utilConfig);
     $this->user = $user;
     $this->services = array();
     $this->cyclicDependancies = array();
 }
 protected function getClass(ReflectionClass $class, Config $config = null, $name = null)
 {
     $parameters = $this->getConstructor($class)->getParameters();
     $values = array();
     if (!$config && $parameters) {
         throw new MissingConfigurationException('Missing configuration for utility class ' . $class->getName());
     }
     foreach ($parameters as $i => $parameter) {
         if ($parameter->getClass() && $parameter->getClass()->getName() === 'Cohesion\\Structure\\Config' || $parameter->getName() === 'config') {
             $values[] = $config;
         } else {
             if ($config->get($parameter->getName()) !== null) {
                 if ($parameter->getClass()) {
                     $values[] = $this->getClass($parameter->getClass(), $config->getConfig($parameter->getName()), $parameter->getName());
                 } else {
                     $values[] = $config->get($parameter->getName());
                 }
             } else {
                 if (!$parameter->isOptional()) {
                     if (!$name) {
                         $name = $class->getShortName();
                     }
                     throw new MissingConfigurationException("Missing configuration for {$name} {$parameter->getName()}");
                 } else {
                     $values[] = $parameter->getDefaultValue();
                 }
             }
         }
     }
     return $class->newInstanceArgs($values);
 }