Exemple #1
0
 /**
  * Helper for service initialization. Usually called via getters
  *
  * @param string $service Name of service to load
  */
 private function load_provider($provider)
 {
     $interface_file = self::get_component_path('midgardmvc_core') . "/providers/{$provider}.php";
     if (!file_exists($interface_file)) {
         throw new InvalidArgumentException("Provider {$provider} not installed");
     }
     if (!$this->configuration->exists("providers_{$provider}")) {
         throw new Exception("No implementation defined for provider {$provider}");
     }
     $provider_implementation = $this->configuration->get("providers_{$provider}");
     if (strpos($provider_implementation, '_') === false) {
         // Built-in provider implementation called using the shorthand notation
         $provider_implementation = "midgardmvc_core_providers_{$provider}_{$provider_implementation}";
     }
     $this->{$provider} = new $provider_implementation();
 }