instance() public static method

create instance if not exists
public static instance ( Container $container ) : object
$container Xpressengine\Register\Container register's container
return object
 /**
  * Register the service provider.
  *
  * @return void
  */
 public function register()
 {
     DynamicModel::clearBootedModels();
     $this->app->singleton('xe.db.proxy', function ($app) {
         return ProxyManager::instance($app['xe.register']);
     });
     $this->app->singleton(['xe.db' => DatabaseHandler::class], function ($app) {
         $coupler = DatabaseCoupler::instance($app['db'], TransactionHandler::instance(), $app['xe.db.proxy'], new LaravelCache($app['cache']->driver('schema')));
         $proxyClass = $app['xe.interception']->proxy(DatabaseHandler::class, 'XeDB');
         return new $proxyClass($coupler, $app['config']->get('xe.database'));
     });
 }
 /**
  * test proxy interface
  *
  * @return void
  */
 public function testProxyInterface()
 {
     $register = $this->register;
     $proxyManager = ProxyManager::instance($register);
     $connector = m::mock('Xpressengine\\Database\\VirtualConnectionInterface');
     $proxyInstance = $this->getProxyInstance();
     $proxyInstance->shouldReceive('set');
     $proxyInstance->shouldReceive('insert');
     $proxyInstance->shouldReceive('update');
     $proxyInstance->shouldReceive('delete');
     $register->shouldReceive('get')->andReturn([$proxyInstance]);
     $proxyManager->set($connector, []);
     $proxyManager->insert([]);
     $proxyManager->update([], []);
     $proxyManager->delete([]);
     $query = m::mock('Xpressengine\\Database\\DynamicQuery');
     $proxyInstance->shouldReceive('get')->andReturn($query);
     $proxyInstance->shouldReceive('first')->andReturn($query);
     $proxyInstance->shouldReceive('wheres')->andReturn($query);
     $proxyInstance->shouldReceive('orders')->andReturn($query);
     $this->assertInstanceOf('Xpressengine\\Database\\DynamicQuery', $proxyManager->get($query));
     $this->assertInstanceOf('Xpressengine\\Database\\DynamicQuery', $proxyManager->first($query));
     $this->assertInstanceOf('Xpressengine\\Database\\DynamicQuery', $proxyManager->wheres($query, []));
     $this->assertInstanceOf('Xpressengine\\Database\\DynamicQuery', $proxyManager->orders($query, []));
 }