Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1157 Rev 1198
Line 1... Line 1...
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 principal d'appel aux script de jrest par ligne de commande.
4
* correctement les méthodes ayant des paramètres  
4
* Pour le moment ne supporte pas correctement les méthodes ayant des paramètres.
5
* 
-
 
6
*/
5
*/
Line 7... Line 6...
7
 
6
 
8
 
7
 
Line 12... Line 11...
12
* 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.
13
*
12
*
14
*@param string le nom de la classe appelée.
13
*@param string le nom de la classe appelée.
15
*@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.
16
*/
15
*/
17
function __autoload($classe)
16
function __autoload($classe) {
18
{
-
 
19
	if (class_exists($classe)) {
17
	if (class_exists($classe)) {
20
		return null;
18
		return null;
21
	}
19
	}
22
	
20
 
23
	$chemins = array('', 'services/', 'services/include/', 'lib/');
21
	$chemins = array('', 'scripts/', 'lib/');
24
	foreach ($chemins as $chemin) {
22
	foreach ($chemins as $chemin) {
25
		$chemin = $chemin.$classe.'.php';
23
		$chemin = $chemin.$classe.'.php';
26
		if (file_exists($chemin)) {
24
		if (file_exists($chemin)) {
27
			require_once $chemin;
25
			require_once $chemin;
28
		}
26
		}
29
	}
27
	}
30
}
28
}
Line -... Line 29...
-
 
29
 
31
 
30
try {
32
if(php_sapi_name() == 'cli') {
-
 
33
	
31
	if (php_sapi_name() == 'cli') {
34
		if ($_SERVER['argc'] < 2){
32
			if ($_SERVER['argc'] < 2){
35
		   trigger_error("Erreur: vous n'avez pas indiqué le nom du service à appeler.");
33
			   $message = "Erreur: vous n'avez pas indiqué le nom du script à appeler.";
36
		   exit;
34
			   throw new Exception($message, 'ERREUR');
37
		}
35
			}
38
		
36
 
39
		// suppression du premier paramètre qui est le nom du script
37
			// suppression du premier paramètre qui est le nom du script
40
		array_shift($argv); 
38
			array_shift($argv);
41
		
39
 
42
		$nom_service = array_shift($argv);
40
			$nom_script = array_shift($argv);
43
				
41
 
44
		if ($_SERVER['argc'] < 2){
42
			if ($_SERVER['argc'] < 2){
45
		   trigger_error("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";
46
		   exit;
44
			   throw new Exception($message, 'ERREUR');
47
		}
45
			}
48
		
46
 
49
		$nom_methode = array_shift($argv);
47
			$nom_methode = array_shift($argv);
50
		
48
 
51
		$params = $argv;
49
			$params = $argv;
52
		$_SERVER['SERVER_NAME'] = 'localhost';
50
			$_SERVER['SERVER_NAME'] = 'localhost';
53
		
51
 
54
		$config =  parse_ini_file('jrest.ini.php', TRUE);
-
 
55
		$service = new $nom_service($config);
52
			$config =  parse_ini_file('jrest.ini.php', TRUE);
-
 
53
 
56
		
54
			$script = new $nom_script($config);
57
		if(!is_callable(array($service, $nom_methode))) {
55
			if (!is_callable(array($script, $nom_methode))) {
58
			trigger_error("Erreur: la méthode ".$nom_methode." n'existe pas ou n'est pas accessible");
56
				$message = "Erreur: la méthode '$nom_methode' du script '$nom_script' n'existe pas ou n'est pas accessible";
59
			exit;
57
				throw new Exception($message, 'ERREUR');
60
		}
-
 
61
		
-
 
62
		// exécution de la méthode
58
			}
63
		$service->$nom_methode($params);
-
 
64
		
-
 
65
		exit;
59
			$script->$nom_methode($params);
66
} else {
60
	} else {
-
 
61
		$message = "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.");
62
		throw new Exception($message, 'ERREUR');
-
 
63
	}
-
 
64
} catch (Exception $e) {
68
	exit;
65
	echo $e->getCode().' : '.$e->getMessage();
-
 
66
}
69
}
67
exit;
70
?>
68
?>