Вход Регистрация
Файл: gapps/vendor/vinkla/hashids/src/HashidsServiceProvider.php
Строк: 120
<?php

/*
 * This file is part of Laravel Hashids.
 *
 * (c) Vincent Klaiber <hello@vinkla.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace VinklaHashids;

use 
HashidsHashids;
use 
IlluminateContractsContainerContainer;
use 
IlluminateFoundationApplication as LaravelApplication;
use 
IlluminateSupportServiceProvider;
use 
LaravelLumenApplication as LumenApplication;

/**
 * This is the Hashids service provider class.
 *
 * @author Vincent Klaiber <hello@vinkla.com>
 */
class HashidsServiceProvider extends ServiceProvider
{
    
/**
     * Boot the service provider.
     *
     * @return void
     */
    
public function boot()
    {
        
$this->setupConfig();
    }

    
/**
     * Setup the config.
     *
     * @return void
     */
    
protected function setupConfig()
    {
        
$source realpath(__DIR__.'/../config/hashids.php');

        if (
$this->app instanceof LaravelApplication && $this->app->runningInConsole()) {
            
$this->publishes([$source => config_path('hashids.php')]);
        } elseif (
$this->app instanceof LumenApplication) {
            
$this->app->configure('hashids');
        }

        
$this->mergeConfigFrom($source'hashids');
    }

    
/**
     * Register the service provider.
     *
     * @return void
     */
    
public function register()
    {
        
$this->registerFactory();
        
$this->registerManager();
        
$this->registerBindings();
    }

    
/**
     * Register the factory class.
     *
     * @return void
     */
    
protected function registerFactory()
    {
        
$this->app->singleton('hashids.factory', function () {
            return new 
HashidsFactory();
        });

        
$this->app->alias('hashids.factory'HashidsFactory::class);
    }

    
/**
     * Register the manager class.
     *
     * @return void
     */
    
protected function registerManager()
    {
        
$this->app->singleton('hashids', function (Container $app) {
            
$config $app['config'];
            
$factory $app['hashids.factory'];

            return new 
HashidsManager($config$factory);
        });

        
$this->app->alias('hashids'HashidsManager::class);
    }

    
/**
     * Register the bindings.
     *
     * @return void
     */
    
protected function registerBindings()
    {
        
$this->app->bind('hashids.connection', function (Container $app) {
            
$manager $app['hashids'];

            return 
$manager->connection();
        });

        
$this->app->alias('hashids.connection'Hashids::class);
    }

    
/**
     * Get the services provided by the provider.
     *
     * @return string[]
     */
    
public function provides()
    {
        return [
            
'hashids',
            
'hashids.factory',
            
'hashids.connection',
        ];
    }
}
Онлайн: 0
Реклама