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); |
?> |