Subversion Repositories eFlore/Applications.cel

Rev

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

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