Rev 1198 | Rev 1224 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** Script principal d'appel aux script 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('', 'scripts/', 'lib/');foreach ($chemins as $chemin) {$chemin = $chemin.$classe.'.php';if (file_exists($chemin)) {require_once $chemin;}}}try {if (php_sapi_name() == 'cli') {if ($_SERVER['argc'] < 2){$message = "Erreur: vous n'avez pas indiqué le nom du script à appeler.";throw new Exception($message, E_USER_ERROR);}// suppression du premier paramètre qui est le nom du scriptarray_shift($argv);$nom_script = array_shift($argv);if ($_SERVER['argc'] < 2){$message = "Erreur: vous n'avez pas indiqué le nom de la méthode";throw new Exception($message, E_USER_ERROR);}$nom_methode = array_shift($argv);$params = $argv;$_SERVER['SERVER_NAME'] = 'localhost';$config = parse_ini_file('jrest.ini.php', TRUE);parametrer($config);$script = new $nom_script($config);if (!is_callable(array($script, $nom_methode))) {$message = "Erreur: la méthode '$nom_methode' du script '$nom_script' n'existe pas ou n'est pas accessible";throw new Exception($message, E_USER_ERROR);}$script->$nom_methode($params);} else {$message = "Erreur: ce fichier est destiné a être appelé en ligne de commande.";throw new Exception($message, E_USER_ERROR);}} catch (Exception $e) {$message = $e->getMessage();$code = $e->getCode();echo "$code : $message\n";}function parametrer($config) {// Réglages de PHPsetlocale(LC_ALL, $config['settings']['locale']);date_default_timezone_set($config['settings']['fuseauHoraire']);}exit;?>