Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1204 → Rev 1224

/trunk/jrest/cli.php
4,7 → 4,6
* 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.
*
27,6 → 26,16
}
}
 
/**
* 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 PHP
setlocale(LC_ALL, $config['settings']['locale']);
date_default_timezone_set($config['settings']['fuseauHoraire']);
}
 
try {
if (php_sapi_name() == 'cli') {
if ($_SERVER['argc'] < 2){
34,17 → 43,16
throw new Exception($message, E_USER_ERROR);
}
 
// suppression du premier paramètre qui est le nom du script
// suppression du premier paramètre qui est le nom de ce fichier
array_shift($argv);
 
$nom_script = array_shift($argv);
 
if ($_SERVER['argc'] < 2){
$message = "Erreur: vous n'avez pas indiqué le nom de la méthode";
if ($_SERVER['argc'] == 0){
$message = "Erreur: vous n'avez pas indiqué le nom du script à lancer";
throw new Exception($message, E_USER_ERROR);
}
 
$nom_methode = array_shift($argv);
// récupération du nom du script à lancer
$nomScript = array_shift($argv);
 
$params = $argv;
$_SERVER['SERVER_NAME'] = 'localhost';
52,26 → 60,23
$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";
$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->$nom_methode($params);
$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 "$code : $message\n";
echo "$tps - $code : $message\n";
}
 
function parametrer($config) {
// Réglages de PHP
setlocale(LC_ALL, $config['settings']['locale']);
date_default_timezone_set($config['settings']['fuseauHoraire']);
}
exit;
exit(0);
?>