Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
15 / 15
SettingsServiceProvider
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
20
100.00% covered (success)
100.00%
15 / 15
 register
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 boot
100.00% covered (success)
100.00%
1 / 1
19
100.00% covered (success)
100.00%
14 / 14
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
use Cache;
use App\Models\Admin\Setting;
class SettingsServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        if (Schema::hasTable('settings') && Schema::hasColumn ('settings', 'deleted_at')) {
        $settings = Cache::remember('settings', 60, function () {
            return Setting::pluck('value', 'name')->all();
        });
        config()->set('settings', $settings); // optional
        config()->set('mail', array_merge(config('mail'), [
            'driver' => (!empty($settings['MAIL_DRIVER']) && $settings['MAIL_DRIVER']  ) ? ($settings['MAIL_DRIVER']) : env('MAIL_DRIVER', 'smtp'),
            'host' => (!empty($settings['MAIL_HOST']) && $settings['MAIL_HOST']  ) ? ($settings['MAIL_HOST']) : env('MAIL_HOST', 'smtp.mailgun.org'),
            'port' => (!empty($settings['MAIL_PORT']) && $settings['MAIL_PORT']) ? ($settings['MAIL_PORT']) : env('MAIL_PORT', 587),
            'from' => [
                'address' => (!empty($settings['MAIL_FROM_ADDRESS']) && $settings['MAIL_FROM_ADDRESS'] ) ? ($settings['MAIL_FROM_ADDRESS']) : env('MAIL_FROM_ADDRESS', 'hello@example.com'),
                'name' => (!empty($settings['MAIL_FROM_NAME']) && $settings['MAIL_FROM_NAME'] ) ? ($settings['MAIL_FROM_NAME']) : env('MAIL_FROM_NAME', 'AMS Notification')
            ],
            'encryption' => (!empty($settings['MAIL_ENCRYPTION']) && $settings['MAIL_ENCRYPTION']  ) ? ($settings['MAIL_ENCRYPTION']) : env('MAIL_ENCRYPTION', 'tls'),
            'username' => (!empty($settings['MAIL_USERNAME']) && $settings['MAIL_USERNAME'] ) ? $settings['MAIL_USERNAME'] :  env('MAIL_USERNAME'),
            'password' => (!empty($settings['MAIL_PASSWORD']) && $settings['MAIL_PASSWORD'] ) ? $settings['MAIL_PASSWORD'] : env('MAIL_PASSWORD'),
        ]));
    }
  }
}