Rev 1224 | 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;}}}/*** Configure PHP en fonction des paramètres du fichier de config.* @param array $config le tableau de paramètres extraits du fichier ini.*/function parametrer($config) {// Réglages de PHPsetlocale(LC_ALL, $config['settings']['locale']);date_default_timezone_set($config['settings']['fuseauHoraire']);}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 de ce fichierarray_shift($argv);if ($_SERVER['argc'] == 0){$message = "Erreur: vous n'avez pas indiqué le nom du script à lancer";throw new Exception($message, E_USER_ERROR);}// récupération du nom du script à lancer$nomScript = array_shift($argv);$params = $argv;$_SERVER['SERVER_NAME'] = 'localhost';$config = parse_ini_file('jrest.ini.php', TRUE);parametrer($config);$conteneur = new Conteneur($config);$script = new $nomScript($conteneur);if (!is_callable(array($script, 'executer'))) {$message = "Erreur: la méthode 'executer' du script '$nomScript' n'existe pas ou n'est pas accessible";throw new Exception($message, E_USER_ERROR);}$script->executer($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) {$tps = date('Y-m-j H:i:s');$message = $e->getMessage();$code = $e->getCode();echo "$tps - $code : $message\n";}exit(0);?>