| Current Path : /home/users/unlimited/www/admin.priyotama.com/app/Observers/ |
| Current File : /home/users/unlimited/www/admin.priyotama.com/app/Observers/BusinessSettingObserver.php |
<?php
namespace App\Observers;
use App\Models\BusinessSetting;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Log;
class BusinessSettingObserver
{
/**
* Handle the BusinessSetting "created" event.
*/
public function created(BusinessSetting $businessSetting): void
{
$this->refreshBusinessSettingsCache($businessSetting->key);
}
/**
* Handle the BusinessSetting "updated" event.
*/
public function updated(BusinessSetting $businessSetting): void
{
$this->refreshBusinessSettingsCache($businessSetting->key);
}
/**
* Handle the BusinessSetting "deleted" event.
*/
public function deleted(BusinessSetting $businessSetting): void
{
$this->refreshBusinessSettingsCache($businessSetting->key);
}
/**
* Handle the BusinessSetting "restored" event.
*/
public function restored(BusinessSetting $businessSetting): void
{
$this->refreshBusinessSettingsCache($businessSetting->key);
}
/**
* Handle the BusinessSetting "force deleted" event.
*/
public function forceDeleted(BusinessSetting $businessSetting): void
{
$this->refreshBusinessSettingsCache($businessSetting->key);
}
private function refreshBusinessSettingsCache($config=null)
{
$prefix = 'business_settings_';
$cacheKeys = DB::table('cache')
->where('key', 'like', "%" . $prefix . "%")
->pluck('key');
$appName = env('APP_NAME').'_cache';
$remove_prefix = strtolower(str_replace('=', '', $appName));
$sanitizedKeys = $cacheKeys->map(function ($key) use ($remove_prefix) {
$key = str_replace($remove_prefix, '', $key);
return $key;
});
foreach ($sanitizedKeys as $key) {
Cache::forget($key);
}
$check = ['currency_model', 'currency_symbol_position', 'system_default_currency', 'language', 'company_name', 'decimal_point_settings', 'product_brand', 'digital_product', 'company_email'];
if (in_array($config, $check) && session()->has($config)) {
session()->forget($config);
}
}
}