1,8 → 1,7 |
<?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 |
* |
* 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. |
*/ |
|
|
14,13 → 13,12 |
*@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) |
{ |
function __autoload($classe) { |
if (class_exists($classe)) { |
return null; |
} |
|
$chemins = array('', 'services/', 'services/include/', 'lib/'); |
|
$chemins = array('', 'scripts/', 'lib/'); |
foreach ($chemins as $chemin) { |
$chemin = $chemin.$classe.'.php'; |
if (file_exists($chemin)) { |
29,42 → 27,42 |
} |
} |
|
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 script |
array_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; |
$_SERVER['SERVER_NAME'] = 'localhost'; |
|
$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; |
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, 'ERREUR'); |
} |
|
// suppression du premier paramètre qui est le nom du script |
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"; |
throw new Exception($message, 'ERREUR'); |
} |
|
$nom_methode = array_shift($argv); |
|
$params = $argv; |
$_SERVER['SERVER_NAME'] = 'localhost'; |
|
$config = parse_ini_file('jrest.ini.php', TRUE); |
|
$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, 'ERREUR'); |
} |
$script->$nom_methode($params); |
} else { |
$message = "Erreur: ce fichier est destiné a être appelé en ligne de commande."; |
throw new Exception($message, 'ERREUR'); |
} |
} catch (Exception $e) { |
echo $e->getCode().' : '.$e->getMessage(); |
} |
exit; |
?> |