public function register()
 {
     $config = ConfigLoader::load();
     if ($this->app['config']->has('kewilayahan')) {
         $config->appends($this->app['config']->get('kewilayahan'));
     }
     $this->app['config']->set(['kewilayahan' => $config->toArray()]);
     $this->app->bind(DataSourceContract::class, function ($app) {
         $datasource = $app['config']->get('kewilayahan.default.datasource', 'eloquent');
         if ($datasource === 'eloquent') {
             $class = $app['config']->get('kewilayahan.datasources.eloquent.class');
             $models = $app['config']->get('kewilayahan.datasources.eloquent.models');
             return new $class($models);
         } else {
             $class = $app['config']->get('kewilayahan.datasources.' . $datasource . '.class');
             return new $class();
         }
     });
     $this->app->bind(OutputContract::class, function ($app) {
         $output = $app['config']->get('kewilayahan.default.output', 'json');
         $class = $app['config']->get('kewilayahan.outputs.' . $output);
         return new $class();
     });
     $this->app->bind('kewilayahan', function ($app) {
         $datasource = $app->make(DataSourceContract::class);
         $output = $app->make(OutputContract::class);
         return new Kewilayahan($datasource, $output);
     });
 }
示例#2
0
 public static function make($type, array $params = [])
 {
     if ($type instanceof OutputContract) {
         return $type;
     }
     $config = ConfigLoader::load()->toArray();
     $output = $config['outputs'];
     $class = $output[$type];
     $instance = new ReflectionClass($class);
     return $instance->newInstanceArgs($params);
 }
示例#3
0
 public function loadConfig(array $config = [])
 {
     $loader = ConfigLoader::load();
     $loader->appends($config);
     $this->config = $loader->toArray();
     return $this;
 }