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