Subversion Repositories Applications.referentiel

Rev

Rev 20 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
?>