Rev 774 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** Script d'appel aux fonctions de jrest par ligne de commande, pour le moment ne supporte pas* correctement les méthodes ayant des paramètres**//*** La fonction __autoload() charge dynamiquement les classes trouvées dans le code.** Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.**@param string le nom de la classe appelée.*@return void le fichier contenant la classe doit être inclu par la fonction.*/function __autoload($classe){if (class_exists($classe)) {return null;}$chemins = array('', 'services/', 'services/include/', 'lib/');foreach ($chemins as $chemin) {$chemin = $chemin.$classe.'.php';if (file_exists($chemin)) {require_once $chemin;}}}if(php_sapi_name() == 'cli') {if ($_SERVER['argc'] < 2){trigger_error("Erreur: vous n'avez pas indiqué le nom du service à appeler.");exit;}// suppression du premier paramètre qui est le nom du scriptarray_shift($argv);$nom_service = array_shift($argv);if ($_SERVER['argc'] < 2){trigger_error("Erreur: vous n'avez pas indiqué le nom de la méthode");exit;}$nom_methode = array_shift($argv);$params = $argv;$config = parse_ini_file('jrest.ini.php', TRUE);$service = new $nom_service($config);if(!is_callable(array($service, $nom_methode))) {trigger_error("Erreur: la méthode ".$nom_methode." n'existe pas ou n'est pas accessible");exit;}// exécution de la méthode$service->$nom_methode($params);exit;} else {trigger_error("Erreur: ce fichier est destiné a être appelé en ligne de commande.");exit;}?>