Example #1
0
 /**
  * Register a configuration object, and any of its service aliases and
  * providers, with the container.
  * 
  * @param Container $container
  */
 public function register(Container $container)
 {
     $container->register(array('Darya\\Foundation\\Configuration' => function (Application $application) {
         $basePath = $application->basePath();
         // Load the application's configuration
         $configuration = new Configuration(array("{$basePath}/config/config.default.php", "{$basePath}/config/config.php"));
         return $configuration;
     }));
     $configuration = $container->resolve('Darya\\Foundation\\Configuration');
     // Register the configured aliases
     foreach ($configuration['aliases'] as $alias => $service) {
         $container->alias($alias, $service);
     }
     // Register the configured service providers
     if ($container instanceof Application) {
         foreach ($configuration['services'] as $service) {
             if (class_exists($service) && is_subclass_of($service, 'Darya\\Service\\Contracts\\Provider')) {
                 $container->provide($container->create($service));
             }
         }
     }
 }