Esempio n. 1
0
 public function register(Container $c)
 {
     $c['database.manager'] = protect(new Capsule());
     $capsule = $c['database.manager'];
     // Extract database settings from dsn
     if (!isset($_ENV['DATABASE_URL'])) {
         throw new Exception('You must provide a database DSN in the DATABASE_URL environment variable');
     }
     $db = array('charset' => 'utf8', 'collation' => 'utf8_general_ci', 'prefix' => '');
     $db = array_merge($db, parse_url($_ENV['DATABASE_URL']));
     $db['driver'] = $db['scheme'] == 'postgres' ? 'pgsql' : $db['scheme'];
     $db['database'] = trim($db['path'], '/');
     $db['username'] = isset($db['user']) ? $db['user'] : '';
     $db['password'] = isset($db['pass']) ? $db['pass'] : '';
     $capsule->addConnection($db);
     $capsule->setAsGlobal();
     // Set the event dispatcher used by Eloquent models
     $capsule->setEventDispatcher(new IDispatcher(new IContainer()));
     // Set the cache manager instance used by connections... (optional)
     // No need for that now, let's keep it minimal
     //$capsule->setCacheManager(...);
     $capsule->bootEloquent();
     $c['db'] = function ($c) {
         return $c['database.manager']->getDatabaseManager();
     };
     \Illuminate\Support\Facades\Schema::setFacadeApplication($c);
 }