Microweber\MicroweberServiceProvider::register PHP Метод

register() публичный Метод

public register ( )
    public function register()
    {
        //https://twitter.com/jeremeamia/status/748986303367217152
        //        if (PHP_VERSION_ID < 70000) {
        //            class_alias('Exception', 'Throwable');
        //        }
        // Set environment
        if (!$this->app->runningInConsole()) {
            $domain = $_SERVER['HTTP_HOST'];
            $this->app->detectEnvironment(function () use($domain) {
                if (getenv('APP_ENV')) {
                    return getenv('APP_ENV');
                }
                $domain = str_ireplace('www.', '', $domain);
                $domain = str_ireplace(':' . $_SERVER['SERVER_PORT'], '', $domain);
                $domain = strtolower($domain);
                return $domain;
            });
        }
        $this->app->instance('config', new ConfigSave($this->app));
        $this->app->singleton('Illuminate\\Cache\\StoreInterface', 'Utils\\Adapters\\Cache\\CacheStore');
        $this->app->bind('Illuminate\\Contracts\\Bus\\Dispatcher', 'Illuminate\\Bus\\Dispatcher');
        $this->app->bind('Illuminate\\Contracts\\Queue\\Queue', 'Illuminate\\Contracts\\Queue\\Queue');
        $this->app->singleton('event_manager', function ($app) {
            return new Providers\Event($app);
        });
        $this->app->singleton('database_manager', function ($app) {
            return new Providers\DatabaseManager($app);
        });
        $this->app->singleton('format', function ($app) {
            return new Utils\Format($app);
        });
        $this->app->singleton('parser', function ($app) {
            return new Utils\Parser($app);
        });
        $this->app->bind('http', function ($app) {
            return new Utils\Http($app);
        });
        $this->app->bind('captcha', function ($app) {
            return new Utils\Captcha($app);
        });
        $this->app->singleton('url_manager', function ($app) {
            return new Providers\UrlManager($app);
        });
        $this->app->singleton('ui', function ($app) {
            return new Providers\Ui($app);
        });
        $this->app->singleton('content_manager', function ($app) {
            return new Providers\ContentManager($app);
        });
        $this->app->singleton('update', function ($app) {
            return new Providers\UpdateManager($app);
        });
        $this->app->singleton('cache_manager', function ($app) {
            return new Providers\CacheManager($app);
        });
        $this->app->singleton('config_manager', function ($app) {
            return new Providers\ConfigurationManager($app);
        });
        $this->app->singleton('media_manager', function ($app) {
            return new Providers\MediaManager($app);
        });
        $this->app->singleton('fields_manager', function ($app) {
            return new Providers\FieldsManager($app);
        });
        $this->app->singleton('data_fields_manager', function ($app) {
            return new Providers\Content\DataFieldsManager($app);
        });
        $this->app->singleton('attributes_manager', function ($app) {
            return new Providers\Content\AttributesManager($app);
        });
        $this->app->singleton('forms_manager', function ($app) {
            return new Providers\FormsManager($app);
        });
        $this->app->singleton('email_notifications_manager', function ($app) {
            return new Providers\EmailNotificationsManager($app);
        });
        $this->app->singleton('notifications_manager', function ($app) {
            return new Providers\NotificationsManager($app);
        });
        $this->app->singleton('log_manager', function ($app) {
            return new Providers\LogManager($app);
        });
        $this->app->singleton('option_manager', function ($app) {
            return new Providers\OptionManager($app);
        });
        $this->app->singleton('template', function ($app) {
            return new Providers\Template($app);
        });
        $this->app->singleton('modules', function ($app) {
            return new Providers\Modules($app);
        });
        $this->app->singleton('category_manager', function ($app) {
            return new Providers\CategoryManager($app);
        });
        $this->app->singleton('menu_manager', function ($app) {
            return new Providers\MenuManager($app);
        });
        $this->app->singleton('user_manager', function ($app) {
            return new Providers\UserManager($app);
        });
        // Shop
        $this->app->singleton('shop_manager', function ($app) {
            return new Providers\ShopManager($app);
        });
        $this->app->singleton('cart_manager', function ($app) {
            return new Providers\Shop\CartManager($app);
        });
        $this->app->singleton('order_manager', function ($app) {
            return new Providers\Shop\OrderManager($app);
        });
        $this->app->singleton('tax_manager', function ($app) {
            return new Providers\Shop\TaxManager($app);
        });
        $this->app->singleton('checkout_manager', function ($app) {
            return new Providers\Shop\CheckoutManager($app);
        });
        // Other
        $this->app->singleton('layouts_manager', function ($app) {
            return new Providers\LayoutsManager($app);
        });
        $this->app->singleton('template_manager', function ($app) {
            return new Providers\TemplateManager($app);
        });
        $this->app->singleton('ui', function ($app) {
            return new Providers\Ui($app);
        });
        $this->app->singleton('content_manager_crud', function ($app) {
            return new Providers\Content\ContentManagerCrud($app);
        });
        $this->app->singleton('content_manager_helpers', function ($app) {
            return new Providers\Content\ContentManagerHelpers($app);
        });
        $this->app->register('Collective\\Html\\HtmlServiceProvider');
        AliasLoader::getInstance()->alias('Form', 'Collective\\Html\\FormFacade');
        AliasLoader::getInstance()->alias('HTML', 'Collective\\Html\\HtmlFacade');
        $this->app->register('GrahamCampbell\\Markdown\\MarkdownServiceProvider');
        AliasLoader::getInstance()->alias('Markdown', 'GrahamCampbell\\Markdown\\Facades\\Markdown');
        AliasLoader::getInstance()->alias('Carbon', 'Carbon\\Carbon');
        // $this->app->register('SocialiteProviders\Manager\ServiceProvider');
    }