Refactoring

This commit is contained in:
Peter Papp
2021-07-22 14:24:07 +02:00
parent 69eb8dacce
commit 093c9451ec
34 changed files with 214 additions and 120 deletions
@@ -0,0 +1,41 @@
<?php
namespace Domain\Localization\Actions;
use DB;
class SeedDefaultLanguageTranslationsAction
{
public function __invoke(
string $license,
string $locale
): void {
$translations = [
'extended' => collect([
config('language-translations.extended'),
config('language-translations.regular'),
config('custom-language-translations'),
])->collapse(),
'regular' => collect([
config('language-translations.regular'),
config('custom-language-translations'),
])->collapse(),
];
$translations = $translations[strtolower($license)]
->map(fn ($value, $key) => [
'lang' => $locale,
'value' => $value,
'key' => $key,
])->toArray();
$chunks = array_chunk($translations, 100);
foreach ($chunks as $chunk) {
DB::table('language_translations')
->insert($chunk);
}
}
}
@@ -1,52 +1,20 @@
<?php
namespace Domain\Localization\Services;
namespace Domain\Localization\Actions;
use DB;
use Domain\Localization\Models\Language;
use Domain\Localization\Models\LanguageTranslation;
class LanguageService
class UpgradeLanguageTranslationsAction
{
/**
* @param $license
* @param $locale
*/
public function create_default_language_translations($license, $locale)
{
$translations = [
'extended' => collect([
config('language-translations.extended'),
config('language-translations.regular'),
config('custom-language-translations'),
])->collapse(),
'regular' => collect([
config('language-translations.regular'),
config('custom-language-translations'),
])->collapse(),
];
$translations = $translations[strtolower($license)]
->map(function ($value, $key) use ($locale) {
return [
'lang' => $locale,
'value' => $value,
'key' => $key,
];
})->toArray();
$chunks = array_chunk($translations, 100);
foreach ($chunks as $chunk) {
DB::table('language_translations')
->insert($chunk);
}
}
/**
* Find newly added translations in default language
* translations file and insert it into database
*/
public function upgrade_language_translations()
public function __invoke(): void
{
// Get all app locales
$locales = Language::all()
@@ -97,4 +65,4 @@ class LanguageService
cache()->forget("language-translations-$locale");
});
}
}
}
@@ -1,6 +1,7 @@
<?php
namespace Domain\Localization\Controllers;
use Domain\Localization\Actions\SeedDefaultLanguageTranslationsAction;
use Illuminate\Http\Response;
use Domain\Settings\Models\Setting;
use App\Http\Controllers\Controller;
+13 -7
View File
@@ -1,14 +1,21 @@
<?php
namespace Domain\Localization\Models;
use Domain\Localization\Actions\SeedDefaultLanguageTranslationsAction;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\DB;
use Kyslik\ColumnSortable\Sortable;
use Illuminate\Database\Eloquent\Model;
use Domain\Localization\Services\LanguageService;
/**
* @method static whereLocale(string $param)
* @method static create(string[] $array)
* @property string id
* @property string name
* @property string locale
* @property string created_at
* @property string updated_at
*/
class Language extends Model
{
@@ -28,7 +35,7 @@ class Language extends Model
public $incrementing = false;
public function languageTranslations()
public function languageTranslations(): HasMany
{
return $this->hasMany(LanguageTranslation::class, 'lang', 'locale');
}
@@ -40,11 +47,10 @@ class Language extends Model
static::creating(function ($language) {
$language->id = Str::uuid();
resolve(LanguageService::class)
->create_default_language_translations(
get_setting('license') ?? 'extended',
$language->locale
);
resolve(SeedDefaultLanguageTranslationsAction::class)(
license: get_setting('license') ?? 'extended',
locale: $language->locale
);
});
static::updating(function ($language) {
@@ -5,6 +5,10 @@ use Illuminate\Database\Eloquent\Model;
/**
* @method static whereLang(string $string)
* @property string key
* @property string value
* @property string lang
*/
class LanguageTranslation extends Model
{