Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
50.00% |
2 / 4 |
CRAP | |
84.62% |
44 / 52 |
StaticRepo | |
0.00% |
0 / 1 |
|
50.00% |
2 / 4 |
48.42 | |
84.62% |
44 / 52 |
getConnexion | |
100.00% |
1 / 1 |
3 | |
100.00% |
5 / 5 |
|||
testConnexion | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
delNumeric | |
0.00% |
0 / 1 |
10.29 | |
85.71% |
12 / 14 |
|||
checkParam | |
0.00% |
0 / 1 |
33.17 | |
81.25% |
26 / 32 |
<?php | |
class StaticRepo{ | |
//contiens l'instance de la Connexion PDO | |
private static $connexion; | |
//contiens les informations de connexion a la BDD | |
private static $config; | |
/** | |
* @return PDO instance de la connexion a la BDD | |
*/ | |
public static function getConnexion(){ | |
if(static::$config == null){ | |
static::$config = json_decode(file_get_contents(dirname(__FILE__).DIRECTORY_SEPARATOR.'config.json'),true); | |
} | |
if(static::$connexion == null){ | |
static::$connexion = new PDO('mysql:host='.static::$config['host'].';dbname='.static::$config['database'], static::$config['login'], static::$config['password']); | |
} | |
return static::$connexion; | |
} | |
/** | |
* @return bool test de la Connexion | |
*/ | |
public static function testConnexion(){ | |
return static::getConnexion() instanceof PDO; | |
} | |
/* SUPPRIME LES VALEURS À CLÉS NUMÉRIQUES DANS UN FETCH D'UNE TABLE DE LA BDD | |
* | |
* @fetchData<Array> le résultat d'une $requeteSQL->fetchAll() / $requeteSQL->fetch() | |
* | |
* @return newFetchData<Array> retourne le tableau donné en paramètre mais sans les valeurs à clés numériques | |
* | |
*/ | |
public static function delNumeric($fetchData, $oneDimension=false){ | |
// cas où fetch renvoie FALSE | |
if( $fetchData === false ) return false; | |
/* [1] 2 dimensions | |
===============================================*/ | |
if( !$oneDimension ){ | |
// on supprime les doublons des entrées (indice numérique) | |
for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs | |
foreach($fetchData[$i] as $col => $val){ // pour toutes les entrées | |
if( !mb_detect_encoding($val, 'UTF-8') ) | |
$fetchData[$i][$col] = utf8_encode($val); | |
if( is_int($col) ) // si l'indice est un entier | |
unset( $fetchData[$i][$col] ); // on le supprime | |
} | |
/* [2] 1 dimensions | |
===============================================*/ | |
}else{ | |
// on supprime les doublons des entrées (indice numérique) | |
foreach($fetchData as $i=>$val){ // pour toutes les entrées | |
if( !mb_detect_encoding($val, 'UTF-8') ) | |
$fetchData[$i] = utf8_encode($val); | |
if( is_int($i) ) // si l'indice est un entier | |
unset( $fetchData[$i] ); // on le supprime | |
} | |
} | |
return $fetchData; | |
} | |
// _ _____ ___ _ _ ___ ____ | |
// / \ | ___|_ _| \ | |_ _| _ \ | |
// / _ \ | |_ | || \| || || |_) | | |
// / ___ \ | _| | || |\ || || _ < | |
// /_/ \_\ |_| |___|_| \_|___|_| \_\ | |
/* Vérifie le type d'une variable | |
* | |
* @variable<mixed> la variable à vérifier | |
* @dbtype<String> le type correspondant à la vérification | |
* | |
* | |
* @return correct<Boolean> TRUE si le type est bon / FALSE si le type ne match pas | |
* | |
*/ | |
public static function checkParam($variable, $dbtype){ | |
/* [1] on vérifie que $dbtype est un String | |
=============================================================*/ | |
if( !is_string($dbtype) ) return false; | |
/* [2] Vérifications | |
=============================================================*/ | |
$checker = true; // contiendra VRAI si la vérification s'avère correcte | |
$matches = []; | |
//si on a un type scalairexlongueur, on traite | |
if(preg_match_all('/((?:[a-z][a-z]+))(\\d+)/is',$dbtype,$matches)){ | |
$dbtype = $matches[1][0]; | |
isset($matches[2][0])? $len = $matches[2][0] : $len = 8; | |
} | |
switch($dbtype){ | |
// [1] 'M' / 'F' | |
case 'Civilite': | |
$checker = $checker && is_string($variable) && in_array($variable,['M','F']); | |
break; | |
// [2] Chaine de caractère (longueur variable) | |
case 'String': | |
$checker = $checker && is_string($variable) && strlen($variable)<$len; | |
break; | |
case 'Integer': | |
$checker = $checker && is_int($variable) && $variable<pow(2,32); | |
break; | |
case 'SmallInteger': | |
$checker = $checker && is_int($variable) && $variable<pow(2,16); | |
break; | |
case 'TinyInteger': | |
$checker = $checker && is_int($variable) && $variable<pow(2,8); | |
break; | |
case 'BigInteger': | |
$checker = $checker && is_int($variable) && $variable<pow(2,64); | |
break; | |
case 'Date': | |
$checker = $checker && is_string($variable) && preg_match('/(\d+)\/(\d+)\/(\d+)/is',$variable); | |
break; | |
case 'Heure': | |
$checker = $checker && is_string($variable) && preg_match('/(\d+):(\d+)/is',$variable); | |
break; | |
// [N] Type inconnu | |
default: $checker = false; break; | |
} | |
/* [3] On retourne le résultat de la vérif | |
=============================================================*/ | |
return $checker; | |
} | |
} | |
?> |