Subversion Repositories eFlore/Applications.cel

Rev

Rev 1198 | Rev 1224 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1198 Rev 1204
1
<?php
1
<?php
2
/**
2
/**
3
* Script principal d'appel aux script de jrest par ligne de commande.
3
* Script principal d'appel aux script de jrest par ligne de commande.
4
* Pour le moment ne supporte pas correctement les méthodes ayant des paramètres.
4
* Pour le moment ne supporte pas correctement les méthodes ayant des paramètres.
5
*/
5
*/
6
 
6
 
7
 
7
 
8
/**
8
/**
9
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code.
9
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code.
10
*
10
*
11
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
11
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
12
*
12
*
13
*@param string le nom de la classe appelée.
13
*@param string le nom de la classe appelée.
14
*@return void le fichier contenant la classe doit être inclu par la fonction.
14
*@return void le fichier contenant la classe doit être inclu par la fonction.
15
*/
15
*/
16
function __autoload($classe) {
16
function __autoload($classe) {
17
	if (class_exists($classe)) {
17
	if (class_exists($classe)) {
18
		return null;
18
		return null;
19
	}
19
	}
20
 
20
 
21
	$chemins = array('', 'scripts/', 'lib/');
21
	$chemins = array('', 'scripts/', 'lib/');
22
	foreach ($chemins as $chemin) {
22
	foreach ($chemins as $chemin) {
23
		$chemin = $chemin.$classe.'.php';
23
		$chemin = $chemin.$classe.'.php';
24
		if (file_exists($chemin)) {
24
		if (file_exists($chemin)) {
25
			require_once $chemin;
25
			require_once $chemin;
26
		}
26
		}
27
	}
27
	}
28
}
28
}
29
 
29
 
30
try {
30
try {
31
	if (php_sapi_name() == 'cli') {
31
	if (php_sapi_name() == 'cli') {
32
			if ($_SERVER['argc'] < 2){
32
			if ($_SERVER['argc'] < 2){
33
			   $message = "Erreur: vous n'avez pas indiqué le nom du script à appeler.";
33
			   $message = "Erreur: vous n'avez pas indiqué le nom du script à appeler.";
34
			   throw new Exception($message, 'ERREUR');
34
			   throw new Exception($message, E_USER_ERROR);
35
			}
35
			}
36
 
36
 
37
			// suppression du premier paramètre qui est le nom du script
37
			// suppression du premier paramètre qui est le nom du script
38
			array_shift($argv);
38
			array_shift($argv);
39
 
39
 
40
			$nom_script = array_shift($argv);
40
			$nom_script = array_shift($argv);
41
 
41
 
42
			if ($_SERVER['argc'] < 2){
42
			if ($_SERVER['argc'] < 2){
43
			   $message = "Erreur: vous n'avez pas indiqué le nom de la méthode";
43
			   $message = "Erreur: vous n'avez pas indiqué le nom de la méthode";
44
			   throw new Exception($message, 'ERREUR');
44
			   throw new Exception($message, E_USER_ERROR);
45
			}
45
			}
46
 
46
 
47
			$nom_methode = array_shift($argv);
47
			$nom_methode = array_shift($argv);
48
 
48
 
49
			$params = $argv;
49
			$params = $argv;
50
			$_SERVER['SERVER_NAME'] = 'localhost';
50
			$_SERVER['SERVER_NAME'] = 'localhost';
51
 
51
 
52
			$config =  parse_ini_file('jrest.ini.php', TRUE);
52
			$config =  parse_ini_file('jrest.ini.php', TRUE);
-
 
53
			parametrer($config);
53
 
54
 
54
			$script = new $nom_script($config);
55
			$script = new $nom_script($config);
55
			if (!is_callable(array($script, $nom_methode))) {
56
			if (!is_callable(array($script, $nom_methode))) {
56
				$message = "Erreur: la méthode '$nom_methode' du script '$nom_script' n'existe pas ou n'est pas accessible";
57
				$message = "Erreur: la méthode '$nom_methode' du script '$nom_script' n'existe pas ou n'est pas accessible";
57
				throw new Exception($message, 'ERREUR');
58
				throw new Exception($message, E_USER_ERROR);
58
			}
59
			}
59
			$script->$nom_methode($params);
60
			$script->$nom_methode($params);
60
	} else {
61
	} else {
61
		$message = "Erreur: ce fichier est destiné a être appelé en ligne de commande.";
62
		$message = "Erreur: ce fichier est destiné a être appelé en ligne de commande.";
62
		throw new Exception($message, 'ERREUR');
63
		throw new Exception($message, E_USER_ERROR);
63
	}
64
	}
64
} catch (Exception $e) {
65
} catch (Exception $e) {
65
	echo $e->getCode().' : '.$e->getMessage();
66
	$message = $e->getMessage();
-
 
67
	$code = $e->getCode();
-
 
68
	echo "$code : $message\n";
-
 
69
}
-
 
70
 
-
 
71
function parametrer($config) {
-
 
72
	// Réglages de PHP
-
 
73
	setlocale(LC_ALL, $config['settings']['locale']);
-
 
74
	date_default_timezone_set($config['settings']['fuseauHoraire']);
66
}
75
}
67
exit;
76
exit;
68
?>
77
?>