Suppression lib/Config
This commit is contained in:
parent
33b9f05062
commit
f9bebc2db5
189
lib/Config.php
189
lib/Config.php
@ -1,189 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Garradin\Plugin\Facturation;
|
||||
|
||||
use Garradin\DB;
|
||||
use Garradin\UserException;
|
||||
use Garradin\Utils;
|
||||
use Garradin\Plugin\Facturation\Facture;
|
||||
|
||||
class Config
|
||||
{
|
||||
protected $fields_types = null;
|
||||
protected $config = null;
|
||||
protected $modified = [];
|
||||
|
||||
static protected $_instance = null;
|
||||
|
||||
/**
|
||||
* Singleton simple
|
||||
* @return Config
|
||||
*/
|
||||
static public function getInstance()
|
||||
{
|
||||
return self::$_instance ?: self::$_instance = new Config;
|
||||
}
|
||||
|
||||
static public function deleteInstance()
|
||||
{
|
||||
self::$_instance = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Empêche de cloner l'objet
|
||||
* @return void
|
||||
*/
|
||||
private function __clone()
|
||||
{
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// Définition des types de données stockées
|
||||
$string = '';
|
||||
$bool = false;
|
||||
// $int = 0;
|
||||
// $float = 0.0;
|
||||
// $array = [];
|
||||
// $object = new \stdClass;
|
||||
|
||||
$this->fields_types = [
|
||||
'siret_asso' => $string,
|
||||
'validate_cp' => $bool,
|
||||
'unique_client_name' => $bool,
|
||||
'footer' => $string
|
||||
];
|
||||
|
||||
$db = DB::getInstance();
|
||||
|
||||
$this->config = $db->getAssoc('SELECT cle, valeur FROM plugin_facturation_config ORDER BY cle;');
|
||||
|
||||
foreach ($this->config as $key=>&$value)
|
||||
{
|
||||
if (!array_key_exists($key, $this->fields_types))
|
||||
{
|
||||
// Ancienne clé de config qui n'est plus utilisée
|
||||
continue;
|
||||
}
|
||||
|
||||
if (is_array($this->fields_types[$key]))
|
||||
{
|
||||
$value = explode(',', $value);
|
||||
}
|
||||
else
|
||||
{
|
||||
settype($value, gettype($this->fields_types[$key]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
if (empty($this->modified))
|
||||
return true;
|
||||
|
||||
$values = [];
|
||||
$db = DB::getInstance();
|
||||
// $db->begin();
|
||||
|
||||
foreach ($this->modified as $key=>$modified)
|
||||
{
|
||||
$value = $this->config[$key];
|
||||
|
||||
if (is_array($value))
|
||||
{
|
||||
$value = implode(',', $value);
|
||||
}
|
||||
elseif (is_object($value))
|
||||
{
|
||||
$value = (string) $value;
|
||||
}
|
||||
|
||||
$db->exec('INSERT OR REPLACE INTO plugin_facturation_config (cle, valeur) VALUES (\''.$key.'\', \''.$value.'\');');
|
||||
}
|
||||
|
||||
// $db->commit();
|
||||
|
||||
$this->modified = [];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function set($key, $value)
|
||||
{
|
||||
if (!array_key_exists($key, $this->fields_types))
|
||||
{
|
||||
throw new \OutOfBoundsException('Ce champ est inconnu.');
|
||||
}
|
||||
|
||||
if (is_array($this->fields_types[$key]))
|
||||
{
|
||||
$value = !empty($value) ? (array) $value : [];
|
||||
}
|
||||
elseif (is_int($this->fields_types[$key]))
|
||||
{
|
||||
$value = (int) $value;
|
||||
}
|
||||
elseif (is_float($this->fields_types[$key]))
|
||||
{
|
||||
$value = (float) $value;
|
||||
}
|
||||
elseif (is_bool($this->fields_types[$key]))
|
||||
{
|
||||
$value = (bool) $value;
|
||||
}
|
||||
elseif (is_string($this->fields_types[$key]))
|
||||
{
|
||||
$value = (string) $value;
|
||||
}
|
||||
|
||||
// switch ($key)
|
||||
// {
|
||||
// case 'siret_asso':
|
||||
// {
|
||||
// if (!trim($value))
|
||||
// {
|
||||
// throw new UserException('Le nom de l\'association ne peut rester vide.');
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
// case 'footer':
|
||||
// break;
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
|
||||
if (!isset($this->config[$key]) || $value !== $this->config[$key])
|
||||
{
|
||||
$this->config[$key] = $value;
|
||||
$this->modified[$key] = true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function get($key)
|
||||
{
|
||||
if (!array_key_exists($key, $this->fields_types))
|
||||
{
|
||||
throw new \OutOfBoundsException('Ce champ est inconnu.');
|
||||
}
|
||||
|
||||
if (!array_key_exists($key, $this->config))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->config[$key];
|
||||
}
|
||||
|
||||
public function getFieldsTypes()
|
||||
{
|
||||
return $this->fields_types;
|
||||
}
|
||||
|
||||
public function getConfig()
|
||||
{
|
||||
return $this->config;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user