Файл: concrete5.7.5.6/concrete/src/Database/DatabaseServiceProvider.php
Строк: 136
<?php
namespace ConcreteCoreDatabase;
use ConcreteCoreDatabaseDriverDriverManager;
use ConcreteCoreFoundationServiceProvider as ServiceProvider;
class DatabaseServiceProvider extends ServiceProvider
{
public function register()
{
// Make both managers singletons
$this->app->singleton('ConcreteCoreDatabaseDatabaseManager');
$this->app->singleton('ConcreteCoreDatabaseDatabaseManagerORM');
// Bind both `database` and `database/orm` to their respective classes
$this->app->bind('database', 'ConcreteCoreDatabaseDatabaseManager');
$this->app->bind('database/orm', 'ConcreteCoreDatabaseDatabaseManagerORM');
// Bind a constructor for our DriverManager bootstrapped from config
$this->app->bind('ConcreteCoreDatabaseDriverDriverManager', function ($app) {
$manager = new DriverManager($app);
$manager->configExtensions($app->make('config')->get('database.drivers'));
return $manager;
});
// Bind a closure to support Core::make('database/structure', $em);
$this->app->bind('database/structure', function ($app, $em) {
if (!is_array($em)) {
$em = array($em);
}
return $app->make('ConcreteCoreDatabaseDatabaseStructureManager', $em);
});
// Bind default entity manager resolver
$this->app->bind('DoctrineORMEntityManagerInterface', function ($app) {
return $app->make('ConcreteCoreDatabaseDatabaseManagerORM')->entityManager();
});
$this->app->bind('DoctrineORMEntityManager', 'DoctrineORMEntityManagerInterface');
// Bind default connection resolver
$this->app->bind('ConcreteCoreDatabaseConnectionConnection', function ($app) {
return $app->make('ConcreteCoreDatabaseDatabaseManager')->connection();
});
$this->app->bind('DoctrineDBALConnection', 'ConcreteCoreDatabaseConnectionConnection');
}
/**
* A list of things that this service provider provides
*
* @return array
*/
public function provides()
{
return array(
'database',
'database/orm',
'database/structure',
'ConcreteCoreDatabaseDriverDriverManager',
'DoctrineORMEntityManager',
'DoctrineORMEntityManagerInterface',
'ConcreteCoreDatabaseConnectionConnection',
'DoctrineDBALConnection'
);
}
}