mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-06-05 22:09:38 +02:00
Correzioni minori e aggiornamento a Laravel 9
This commit is contained in:
131
app/LaravelGettext/Config/ConfigManager.php
Normal file
131
app/LaravelGettext/Config/ConfigManager.php
Normal file
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
|
||||
namespace App\LaravelGettext\Config;
|
||||
|
||||
use \App\LaravelGettext\Config\Models\Config as ConfigModel;
|
||||
use \App\LaravelGettext\Exceptions\RequiredConfigurationFileException;
|
||||
use \App\LaravelGettext\Exceptions\RequiredConfigurationKeyException;
|
||||
use \Illuminate\Support\Facades\Config;
|
||||
use App\LaravelGettext\Storages\SessionStorage;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class ConfigManager
|
||||
{
|
||||
/**
|
||||
* Config model
|
||||
*
|
||||
* @var ConfigModel
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* Package configuration route (published)
|
||||
*/
|
||||
const DEFAULT_PACKAGE_CONFIG = 'laravel-gettext';
|
||||
|
||||
/**
|
||||
* @param array $config
|
||||
* @throws RequiredConfigurationKeyException
|
||||
*/
|
||||
public function __construct($config = null)
|
||||
{
|
||||
if ($config) {
|
||||
$this->config = $this->generateFromArray($config);
|
||||
} else {
|
||||
// In Laravel 5.3 we need empty config model
|
||||
$this->config = new ConfigModel;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get new instance of the ConfigManager
|
||||
*
|
||||
* @param null $config
|
||||
* @return static
|
||||
* @throws RequiredConfigurationFileException
|
||||
*/
|
||||
public static function create($config = null)
|
||||
{
|
||||
if (is_null($config)) {
|
||||
// Default package configuration file (published)
|
||||
$config = Config::get(static::DEFAULT_PACKAGE_CONFIG);
|
||||
}
|
||||
|
||||
return new static($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the config model
|
||||
*
|
||||
* @return ConfigModel
|
||||
*/
|
||||
public function get()
|
||||
{
|
||||
return $this->config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a configuration container and checks the required fields
|
||||
*
|
||||
* @param array $config
|
||||
* @return ConfigModel
|
||||
* @throws RequiredConfigurationKeyException
|
||||
*/
|
||||
protected function generateFromArray(array $config)
|
||||
{
|
||||
$requiredKeys = [
|
||||
'locale',
|
||||
'fallback-locale',
|
||||
'encoding'
|
||||
];
|
||||
|
||||
foreach ($requiredKeys as $key) {
|
||||
if (!array_key_exists($key, $config)) {
|
||||
throw new RequiredConfigurationKeyException(
|
||||
sprintf('Unconfigured required value: %s', $key)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$container = new ConfigModel();
|
||||
|
||||
$id = isset($config['session-identifier']) ? $config['session-identifier'] : 'laravel-gettext-locale';
|
||||
|
||||
$adapter = isset($config['adapter']) ? $config['adapter'] : \App\LaravelGettext\Adapters\LaravelAdapter::class;
|
||||
|
||||
$storage = isset($config['storage']) ? $config['storage'] : SessionStorage::class;
|
||||
|
||||
$container->setLocale($config['locale'])
|
||||
->setSessionIdentifier($id)
|
||||
->setEncoding($config['encoding'])
|
||||
->setCategories(Arr::get('categories', $config, ['LC_ALL']))
|
||||
->setFallbackLocale($config['fallback-locale'])
|
||||
->setSupportedLocales($config['supported-locales'])
|
||||
->setDomain($config['domain'])
|
||||
->setTranslationsPath($config['translations-path'])
|
||||
->setProject($config['project'])
|
||||
->setTranslator($config['translator'])
|
||||
->setSourcePaths($config['source-paths'])
|
||||
->setSyncLaravel($config['sync-laravel'])
|
||||
->setAdapter($adapter)
|
||||
->setStorage($storage);
|
||||
|
||||
if (array_key_exists('relative-path', $config)) {
|
||||
$container->setRelativePath($config['relative-path']);
|
||||
}
|
||||
|
||||
if (array_key_exists("custom-locale", $config)) {
|
||||
$container->setCustomLocale($config['custom-locale']);
|
||||
}
|
||||
|
||||
if (array_key_exists("keywords-list", $config)) {
|
||||
$container->setKeywordsList($config['keywords-list']);
|
||||
}
|
||||
|
||||
if (array_key_exists("handler", $config)) {
|
||||
$container->setHandler($config['handler']);
|
||||
}
|
||||
|
||||
return $container;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user