69 lines
1.6 KiB
PHP
69 lines
1.6 KiB
PHP
<?php
|
|
|
|
|
|
namespace App\Utility;
|
|
|
|
use App\Models\Translation;
|
|
|
|
class TranslationUtility
|
|
{
|
|
// Hold the class instance.
|
|
private static $instance = null;
|
|
private $translations;
|
|
|
|
// The db connection is established in the private constructor.
|
|
private function __construct()
|
|
{
|
|
$data = Translation::all();
|
|
$this->translations = collect($data->toArray())->all();
|
|
//$this->translations = collect($data->toArray());
|
|
}
|
|
|
|
public static function getInstance()
|
|
{
|
|
if (!self::$instance) {
|
|
self::$instance = new TranslationUtility();
|
|
}
|
|
|
|
return self::$instance;
|
|
}
|
|
|
|
public static function reInstantiate()
|
|
{
|
|
self::$instance = new TranslationUtility();
|
|
}
|
|
|
|
public function cached_translation_row($lang_key, $lang)
|
|
{
|
|
$row = [];
|
|
if (empty($this->translations)) {
|
|
return $row;
|
|
}
|
|
|
|
|
|
foreach ($this->translations as $item) {
|
|
if ($item['lang_key'] == $lang_key && $item['lang'] == $lang) {
|
|
$row = $item;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return $row;
|
|
}
|
|
|
|
//The code below also works but it takes more time than the function written above
|
|
//$this->translations = collect($data->toArray());
|
|
/*public function cached_translation_row($lang_key, $lang)
|
|
{
|
|
$row = $this->translations->where('lang_key', $lang_key)->where('lang', $lang)->first();
|
|
return $row != null ? $row : [];
|
|
}*/
|
|
|
|
public function getAllTranslations()
|
|
{
|
|
return $this->translations;
|
|
}
|
|
|
|
|
|
}
|