Flarum\Foundation\AbstractServer::getApp PHP Метод

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

public getApp ( ) : Application
Результат Application
    public function getApp()
    {
        if ($this->app !== null) {
            return $this->app;
        }
        date_default_timezone_set('UTC');
        $app = new Application($this->basePath, $this->publicPath);
        if ($this->storagePath) {
            $app->useStoragePath($this->storagePath);
        }
        $app->instance('env', 'production');
        $app->instance('flarum.config', $this->config);
        $app->instance('config', $config = $this->getIlluminateConfig($app));
        $this->registerLogger($app);
        $this->registerCache($app);
        $app->register('Flarum\\Database\\DatabaseServiceProvider');
        $app->register('Flarum\\Settings\\SettingsServiceProvider');
        $app->register('Flarum\\Locale\\LocaleServiceProvider');
        $app->register('Illuminate\\Bus\\BusServiceProvider');
        $app->register('Illuminate\\Filesystem\\FilesystemServiceProvider');
        $app->register('Illuminate\\Hashing\\HashServiceProvider');
        $app->register('Illuminate\\Mail\\MailServiceProvider');
        $app->register('Illuminate\\View\\ViewServiceProvider');
        $app->register('Illuminate\\Validation\\ValidationServiceProvider');
        if ($app->isInstalled() && $app->isUpToDate()) {
            $settings = $app->make('Flarum\\Settings\\SettingsRepositoryInterface');
            $config->set('mail.driver', $settings->get('mail_driver'));
            $config->set('mail.host', $settings->get('mail_host'));
            $config->set('mail.port', $settings->get('mail_port'));
            $config->set('mail.from.address', $settings->get('mail_from'));
            $config->set('mail.from.name', $settings->get('forum_title'));
            $config->set('mail.encryption', $settings->get('mail_encryption'));
            $config->set('mail.username', $settings->get('mail_username'));
            $config->set('mail.password', $settings->get('mail_password'));
            $app->register('Flarum\\Core\\CoreServiceProvider');
            $app->register('Flarum\\Api\\ApiServiceProvider');
            $app->register('Flarum\\Forum\\ForumServiceProvider');
            $app->register('Flarum\\Admin\\AdminServiceProvider');
            foreach ($this->extendCallbacks as $callback) {
                $app->call($callback);
            }
            $app->register('Flarum\\Extension\\ExtensionServiceProvider');
        }
        $app->boot();
        $this->app = $app;
        return $app;
    }