/**
  * Application constructor.
  *
  * @param array $config
  */
 public function __construct($config)
 {
     parent::__construct();
     $this['config'] = function () use($config) {
         return new Config($config);
     };
     if ($this['config']['debug']) {
         error_reporting(E_ALL);
     }
     $this->registerProviders();
     $this->registerBase();
     $this->initializeLogger();
     Http::setDefaultOptions($this['config']->get('guzzle', ['timeout' => 5.0]));
     foreach (['app_id', 'secret'] as $key) {
         !isset($config[$key]) || ($config[$key] = '***' . substr($config[$key], -5));
     }
     Log::debug('Current config:', $config);
 }