Partial migration to singletons for static resources

This commit is contained in:
David Bomba 2024-06-03 07:37:48 +10:00
parent fc091659ed
commit 23b7c6667e
3 changed files with 67 additions and 31 deletions

View File

@ -378,15 +378,16 @@ class Client extends BaseModel implements HasLocalePreference
public function language()
{
$languages = Cache::get('languages');
$languages = app('languages');
// $languages = Cache::get('languages');
if (! $languages) {
$this->buildCache(true);
}
// if (! $languages) {
// $this->buildCache(true);
// }
return $languages->filter(function ($item) {
return $languages->first(function ($item) {
return $item->id == $this->getSetting('language_id');
})->first();
});
}
public function industry(): BelongsTo
@ -410,28 +411,30 @@ class Client extends BaseModel implements HasLocalePreference
public function date_format()
{
$date_formats = Cache::get('date_formats');
$date_formats = app('date_formts');
// $date_formats = Cache::get('date_formats');
if (! $date_formats) {
$this->buildCache(true);
}
// if (! $date_formats) {
// $this->buildCache(true);
// }
return $date_formats->filter(function ($item) {
return $date_formats->first(function ($item) {
return $item->id == $this->getSetting('date_format_id');
})->first()->format;
})->format;
}
public function currency()
{
$currencies = Cache::get('currencies');
$currencies = app('currencies');
// $currencies = Cache::get('currencies');
if (! $currencies) {
$this->buildCache(true);
}
// if (! $currencies) {
// $this->buildCache(true);
// }
return $currencies->filter(function ($item) {
return $currencies->first(function ($item) {
return $item->id == $this->getSetting('currency_id');
})->first();
});
}
public function service(): ClientService
@ -739,15 +742,17 @@ class Client extends BaseModel implements HasLocalePreference
public function preferredLocale()
{
$languages = Cache::get('languages');
$this->language()->locale ?? 'en';
// $languages = app('languages');
// $languages = Cache::get('languages');
if (! $languages) {
$this->buildCache(true);
}
// if (! $languages) {
// $this->buildCache(true);
// }
return $languages->filter(function ($item) {
return $item->id == $this->getSetting('language_id');
})->first()->locale;
// return $languages->first(function ($item) {
// return $item->id == $this->getSetting('language_id');
// })->locale;
}
public function backup_path(): string

View File

@ -12,10 +12,14 @@
namespace App\Providers;
use App\Models\Bank;
use App\Models\Size;
use App\Models\Country;
use App\Models\Gateway;
use App\Models\Currency;
use App\Models\Industry;
use App\Models\Language;
use App\Models\Timezone;
use App\Models\DateFormat;
use App\Models\PaymentTerm;
use Illuminate\Support\ServiceProvider;
use App\DataMapper\EmailTemplateDefaults;
@ -30,6 +34,7 @@ class StaticServiceProvider extends ServiceProvider
public function register()
{
app()->singleton('currencies', function ($app) {
return Currency::query()->orderBy('name')->get();
});
@ -50,11 +55,36 @@ class StaticServiceProvider extends ServiceProvider
return Industry::query()->orderBy('name')->get();
});
app()->singleton('banks', function ($app){
app()->singleton('banks', function ($app) {
return Bank::query()->orderBy('name')->get();
});
app()->singleton('templates', function ($app){
app()->singleton('date_formats', function ($app) {
return DateFormat::query()->orderBy('id')->get();
});
app()->singleton('timezones', function ($app) {
return Timezone::query()->orderBy('id')->get();
});
app()->singleton('gateways', function ($app) {
return Gateway::query()->orderBy('id')->get();
});
app()->singleton('industries', function ($app) {
return Industry::query()->orderBy('id')->get();
});
app()->singleton('sizes', function ($app) {
return Size::query()->orderBy('id')->get();
});
/** @deprecated */
app()->singleton('banks', function ($app) {
return Bank::query()->orderBy('id')->get();
});
app()->singleton('templates', function ($app) {
return [
'invoice' => [
'subject' => EmailTemplateDefaults::emailInvoiceSubject(),
@ -91,6 +121,7 @@ class StaticServiceProvider extends ServiceProvider
];
});
}
public function boot()

View File

@ -201,7 +201,7 @@ return [
App\Providers\MultiDBProvider::class,
App\Providers\ClientPortalServiceProvider::class,
App\Providers\NinjaTranslationServiceProvider::class,
// App\Providers\StaticServiceProvider::class,
App\Providers\StaticServiceProvider::class,
],
/*
@ -216,8 +216,8 @@ return [
*/
'aliases' => Facade::defaultAliases()->merge([
'Collector' => Turbo124\Collector\CollectorFacade::class,
'Countries' => 'Webpatser\Countries\CountriesFacade',
'Collector' => Turbo124\Beacon\CollectorFacade::class,
// 'Countries' => 'Webpatser\Countries\CountriesFacade',
'CustomMessage' => App\Utils\ClientPortal\CustomMessage\CustomMessageFacade::class,
'Redis' => Illuminate\Support\Facades\Redis::class,
])->toArray(),