Subversion Repositories eFlore/Applications.cel

Rev

Rev 1204 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1204 Rev 1224
Line 2... Line 2...
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
*/
Line 6... Line -...
6
 
-
 
7
 
6
 
8
/**
7
/**
9
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code.
8
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code.
10
*
9
*
11
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
10
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
Line 25... Line 24...
25
			require_once $chemin;
24
			require_once $chemin;
26
		}
25
		}
27
	}
26
	}
28
}
27
}
Line -... Line 28...
-
 
28
 
-
 
29
/**
-
 
30
 * Configure PHP en fonction des paramètres du fichier de config.
-
 
31
 * @param array $config le tableau de paramètres extraits du fichier ini.
-
 
32
 */
-
 
33
function parametrer($config) {
-
 
34
	// Réglages de PHP
-
 
35
	setlocale(LC_ALL, $config['settings']['locale']);
-
 
36
	date_default_timezone_set($config['settings']['fuseauHoraire']);
-
 
37
}
29
 
38
 
30
try {
39
try {
31
	if (php_sapi_name() == 'cli') {
40
	if (php_sapi_name() == 'cli') {
32
			if ($_SERVER['argc'] < 2){
41
			if ($_SERVER['argc'] < 2){
33
			   $message = "Erreur: vous n'avez pas indiqué le nom du script à appeler.";
42
			   $message = "Erreur: vous n'avez pas indiqué le nom du script à appeler.";
34
			   throw new Exception($message, E_USER_ERROR);
43
			   throw new Exception($message, E_USER_ERROR);
Line 35... Line 44...
35
			}
44
			}
36
 
45
 
Line 37... Line -...
37
			// suppression du premier paramètre qui est le nom du script
-
 
38
			array_shift($argv);
-
 
39
 
46
			// suppression du premier paramètre qui est le nom de ce fichier
40
			$nom_script = array_shift($argv);
47
			array_shift($argv);
41
 
48
 
42
			if ($_SERVER['argc'] < 2){
49
			if ($_SERVER['argc'] == 0){
Line -... Line 50...
-
 
50
			   $message = "Erreur: vous n'avez pas indiqué le nom du script à lancer";
43
			   $message = "Erreur: vous n'avez pas indiqué le nom de la méthode";
51
			   throw new Exception($message, E_USER_ERROR);
Line 44... Line 52...
44
			   throw new Exception($message, E_USER_ERROR);
52
			}
45
			}
53
 
Line 46... Line 54...
46
 
54
			// récupération du nom du script à lancer
47
			$nom_methode = array_shift($argv);
55
			$nomScript = array_shift($argv);
Line -... Line 56...
-
 
56
 
-
 
57
			$params = $argv;
48
 
58
			$_SERVER['SERVER_NAME'] = 'localhost';
49
			$params = $argv;
59
 
50
			$_SERVER['SERVER_NAME'] = 'localhost';
60
			$config =  parse_ini_file('jrest.ini.php', TRUE);
51
 
61
			parametrer($config);
52
			$config =  parse_ini_file('jrest.ini.php', TRUE);
62
 
53
			parametrer($config);
63
			$conteneur = new Conteneur($config);
54
 
64
 
55
			$script = new $nom_script($config);
65
			$script = new $nomScript($conteneur);
56
			if (!is_callable(array($script, $nom_methode))) {
66
			if (!is_callable(array($script, 'executer'))) {
57
				$message = "Erreur: la méthode '$nom_methode' du script '$nom_script' n'existe pas ou n'est pas accessible";
67
				$message = "Erreur: la méthode 'executer' du script '$nomScript' n'existe pas ou n'est pas accessible";
58
				throw new Exception($message, E_USER_ERROR);
68
				throw new Exception($message, E_USER_ERROR);
-
 
69
			}
59
			}
70
			$script->executer($params);
60
			$script->$nom_methode($params);
71
	} else {
61
	} else {
72
		$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.";
-
 
63
		throw new Exception($message, E_USER_ERROR);
-
 
64
	}
-
 
65
} catch (Exception $e) {
-
 
66
	$message = $e->getMessage();
-
 
67
	$code = $e->getCode();
-
 
68
	echo "$code : $message\n";
73
		throw new Exception($message, E_USER_ERROR);
69
}
74
	}
70
 
75
} catch (Exception $e) {
71
function parametrer($config) {
76
	$tps = date('Y-m-j H:i:s');