%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/graphicd/public_html/vebto/vendor/kreait/laravel-firebase/src/
Upload File :
Create Path :
Current File : /home/graphicd/public_html/vebto/vendor/kreait/laravel-firebase/src/ServiceProvider.php

<?php

declare(strict_types=1);

namespace Kreait\Laravel\Firebase;

use Illuminate\Contracts\Container\Container;
use Kreait\Firebase;
use Laravel\Lumen\Application as Lumen;

final class ServiceProvider extends \Illuminate\Support\ServiceProvider
{
    public function boot()
    {
        // @codeCoverageIgnoreStart
        if (!$this->app->runningInConsole()) {
            return;
        }

        if ($this->app instanceof Lumen) {
            return;
        }
        // @codeCoverageIgnoreEnd

        $this->publishes([
            __DIR__.'/../config/firebase.php' => $this->app->configPath('firebase.php'),
        ], 'config');
    }

    public function register()
    {
        // @codeCoverageIgnoreStart
        if ($this->app instanceof Lumen) {
            $this->app->configure('firebase');
        }
        // @codeCoverageIgnoreEnd

        $this->mergeConfigFrom(__DIR__.'/../config/firebase.php', 'firebase');

        $this->registerManager();
        $this->registerComponents();
    }

    private function registerComponents(): void
    {
        $this->app->singleton(Firebase\Auth::class, static function (Container $app) {
            return $app->make(FirebaseProjectManager::class)->project()->auth();
        });
        $this->app->alias(Firebase\Auth::class, 'firebase.auth');

        $this->app->singleton(Firebase\Database::class, static function (Container $app) {
            return $app->make(FirebaseProjectManager::class)->project()->database();
        });
        $this->app->alias(Firebase\Database::class, 'firebase.database');

        $this->app->singleton(Firebase\DynamicLinks::class, static function (Container $app) {
            return $app->make(FirebaseProjectManager::class)->project()->dynamicLinks();
        });
        $this->app->alias(Firebase\DynamicLinks::class, 'firebase.dynamic_links');

        $this->app->singleton(Firebase\Firestore::class, static function (Container $app) {
            return $app->make(FirebaseProjectManager::class)->project()->firestore();
        });
        $this->app->alias(Firebase\Firestore::class, 'firebase.firestore');

        $this->app->singleton(Firebase\Messaging::class, static function (Container $app) {
            return $app->make(FirebaseProjectManager::class)->project()->messaging();
        });
        $this->app->alias(Firebase\Messaging::class, 'firebase.messaging');

        $this->app->singleton(Firebase\RemoteConfig::class, static function (Container $app) {
            return $app->make(FirebaseProjectManager::class)->project()->remoteConfig();
        });
        $this->app->alias(Firebase\RemoteConfig::class, 'firebase.remote_config');

        $this->app->singleton(Firebase\Storage::class, static function (Container $app) {
            return $app->make(FirebaseProjectManager::class)->project()->storage();
        });
        $this->app->alias(Firebase\Storage::class, 'firebase.storage');
    }

    private function registerManager(): void
    {
        $this->app->singleton(FirebaseProjectManager::class, static function (Container $app) {
            return new FirebaseProjectManager($app);
        });
        $this->app->alias(FirebaseProjectManager::class, 'firebase.manager');
    }
}

Zerion Mini Shell 1.0