PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.9.2
Independent Analytics – WordPress Analytics Plugin v2.9.2
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 All 120 releases
independent-analytics / vendor / illuminate / database / DatabaseServiceProvider.php
DatabaseServiceProvider.php
97 lines 3.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Database;
4
5 use IAWPSCOPED\Faker\Factory as FakerFactory;
6 use IAWPSCOPED\Faker\Generator as FakerGenerator;
7 use IAWPSCOPED\Illuminate\Contracts\Queue\EntityResolver;
8 use IAWPSCOPED\Illuminate\Database\Connectors\ConnectionFactory;
9 use IAWPSCOPED\Illuminate\Database\Eloquent\Model;
10 use IAWPSCOPED\Illuminate\Database\Eloquent\QueueEntityResolver;
11 use IAWPSCOPED\Illuminate\Support\ServiceProvider;
12 /** @internal */
13 class DatabaseServiceProvider extends ServiceProvider
14 {
15 /**
16 * The array of resolved Faker instances.
17 *
18 * @var array
19 */
20 protected static $fakers = [];
21 /**
22 * Bootstrap the application events.
23 *
24 * @return void
25 */
26 public function boot()
27 {
28 Model::setConnectionResolver($this->app['db']);
29 Model::setEventDispatcher($this->app['events']);
30 }
31 /**
32 * Register the service provider.
33 *
34 * @return void
35 */
36 public function register()
37 {
38 Model::clearBootedModels();
39 $this->registerConnectionServices();
40 $this->registerEloquentFactory();
41 $this->registerQueueableEntityResolver();
42 }
43 /**
44 * Register the primary database bindings.
45 *
46 * @return void
47 */
48 protected function registerConnectionServices()
49 {
50 // The connection factory is used to create the actual connection instances on
51 // the database. We will inject the factory into the manager so that it may
52 // make the connections while they are actually needed and not of before.
53 $this->app->singleton('db.factory', function ($app) {
54 return new ConnectionFactory($app);
55 });
56 // The database manager is used to resolve various connections, since multiple
57 // connections might be managed. It also implements the connection resolver
58 // interface which may be used by other components requiring connections.
59 $this->app->singleton('db', function ($app) {
60 return new DatabaseManager($app, $app['db.factory']);
61 });
62 $this->app->bind('db.connection', function ($app) {
63 return $app['db']->connection();
64 });
65 $this->app->singleton('db.transactions', function ($app) {
66 return new DatabaseTransactionsManager();
67 });
68 }
69 /**
70 * Register the Eloquent factory instance in the container.
71 *
72 * @return void
73 */
74 protected function registerEloquentFactory()
75 {
76 $this->app->singleton(FakerGenerator::class, function ($app, $parameters) {
77 $locale = $parameters['locale'] ?? $app['config']->get('app.faker_locale', 'en_US');
78 if (!isset(static::$fakers[$locale])) {
79 static::$fakers[$locale] = FakerFactory::create($locale);
80 }
81 static::$fakers[$locale]->unique(\true);
82 return static::$fakers[$locale];
83 });
84 }
85 /**
86 * Register the queueable entity resolver implementation.
87 *
88 * @return void
89 */
90 protected function registerQueueableEntityResolver()
91 {
92 $this->app->singleton(EntityResolver::class, function () {
93 return new QueueEntityResolver();
94 });
95 }
96 }
97