20 |
jpm |
1 |
<?php
|
|
|
2 |
// Encodage : UTF-8
|
|
|
3 |
// +-------------------------------------------------------------------------------------------------------------------+
|
|
|
4 |
/**
|
|
|
5 |
* Script
|
|
|
6 |
*
|
|
|
7 |
* Description : Fabrique permettant de charger les scripts
|
|
|
8 |
*
|
|
|
9 |
//Auteur original :
|
|
|
10 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
|
|
11 |
* @copyright Tela-Botanica 1999-2008
|
|
|
12 |
* @licence GPL v3 & CeCILL v2
|
|
|
13 |
* @version $Id$
|
|
|
14 |
*/
|
|
|
15 |
// +-------------------------------------------------------------------------------------------------------------------+
|
|
|
16 |
|
|
|
17 |
class Script {
|
|
|
18 |
/** Niveau de message de type LOG */
|
|
|
19 |
const LOG = 0;
|
|
|
20 |
/** Niveau de message de type ERREUR */
|
|
|
21 |
const ERREUR = 1;
|
|
|
22 |
/** Niveau de message de type AVERTISSEMENT */
|
|
|
23 |
const AVERTISSEMENT = 2;
|
|
|
24 |
/** Niveau de message de type INFORMATION */
|
|
|
25 |
const INFO = 3;
|
|
|
26 |
|
|
|
27 |
public static function getCode($niveau) {
|
|
|
28 |
$txt_niveaux = array('LOG', 'ERREUR','AVERTISSEMENT', 'INFO');
|
|
|
29 |
return $txt_niveaux[$niveau];
|
|
|
30 |
}
|
|
|
31 |
|
|
|
32 |
public static function charger($commande_nom) {
|
|
|
33 |
$classe_nom = implode('', array_map('ucfirst', explode('_', strtolower($commande_nom))));
|
|
|
34 |
$fichier_script = ES_CHEMIN_MODULE.$commande_nom.DS.$classe_nom.'.php';
|
|
|
35 |
if (!file_exists($fichier_script)){
|
|
|
36 |
trigger_error("Erreur : script '$fichier_script' inconnu!\n", E_USER_ERROR);
|
|
|
37 |
}
|
|
|
38 |
require_once $fichier_script;
|
|
|
39 |
if (!class_exists( $classe_nom)) {
|
|
|
40 |
trigger_error("Erreur: impossible de trouver la classe de la commande : $classe_nom\n", E_USER_ERROR);
|
|
|
41 |
}
|
|
|
42 |
$Script = new $classe_nom($commande_nom);
|
|
|
43 |
return $Script;
|
|
|
44 |
}
|
|
|
45 |
|
|
|
46 |
public static function getParametres($argv) {
|
|
|
47 |
$parametres = array();
|
|
|
48 |
// Récupération des options
|
|
|
49 |
while(count($argv)) {
|
|
|
50 |
if (isset($argv[1]) && $argv[1]{0} != '-') {
|
|
|
51 |
$param = array_shift($argv);
|
|
|
52 |
$parametres[$param] = array_shift($argv);
|
|
|
53 |
} elseif (!isset($argv[1]) || $argv[1]{0} == '-') {
|
|
|
54 |
$parametres[array_shift($argv)] = null;
|
|
|
55 |
} else {
|
|
|
56 |
trigger_error("Erreur: valeur manquante pour le paramêtre '".$argv[0]."' \n", E_USER_ERROR);
|
|
|
57 |
}
|
|
|
58 |
}
|
|
|
59 |
return $parametres;
|
|
|
60 |
}
|
|
|
61 |
|
|
|
62 |
public static function setAutoloadChemin($chemin) {
|
|
|
63 |
if (is_array($chemin)) {
|
|
|
64 |
$GLOBALS['chemins_autoload'] = array_unique(array_merge($GLOBALS['chemins_autoload'], $chemin));
|
|
|
65 |
} else {
|
|
|
66 |
$GLOBALS['chemins_autoload'][] = $chemin;
|
|
|
67 |
}
|
|
|
68 |
}
|
|
|
69 |
|
|
|
70 |
}
|
|
|
71 |
?>
|