Rev 26 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
// Encodage : UTF-8
// +-------------------------------------------------------------------------------------------------------------------+
/**
* script
*
* Description : initialise le chargement et l'exécution des scripts
* Fichier d'origine jelix-scripts par Jouanneau Laurent
* copyright 2005-2007 Jouanneau laurent
* link http://www.jelix.org
*
//Auteur original :
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Tela-Botanica 1999-2008
* @licence GPL v3 & CeCILL v2
* @version $Id$
*/
// +-------------------------------------------------------------------------------------------------------------------+
// Récupération de la config générale
require dirname(__FILE__).DIRECTORY_SEPARATOR.'scripts.conf.php';
// Gestion de l'auto chargement des classes
function __autoload($classe)
{
// Gestion des fichiers pésent dans le path
$fichier = $classe.'.php';
if (file_exists($fichier)) {
require_once $fichier;
}
// Gestion des classes PEAR
$fichier = ES_CHEMIN_PEAR;
if (!substr_count($classe, '_') > 0) {
$fichier .= $classe;
} else {
$tab_chemin = explode('_', $classe);
foreach ($tab_chemin as $c => $v) {
$fichier .= ($c == 0) ? $v.DS : $v;
}
}
$fichier .= '.php';
if (file_exists($fichier)) {
require_once $fichier;
}
// Gestion des classes principales des modules
$module = strtolower(str_replace(' ', '_', preg_replace('/([a-z])([A-Z])/', '$1 $2',$classe)));
$fichier = ES_CHEMIN_MODULE.$module.DS.$classe.'.class.php';
if (file_exists($fichier)) {
require_once $fichier;
}
// Gestion des bibliothèques des scripts
foreach ($GLOBALS['chemins_autoload'] as $chemin) {
$fichiers = array( $chemin.$classe.'.class.php',
$chemin.$classe.'.php');
foreach ($fichiers as $fichier) {
if (file_exists($fichier)) {
require_once $fichier;
break;
}
}
}
}
/**
* récupération du nom de la commande et éventuellement du nom de l'application
*/
if ($_SERVER['argc'] < 2){
die("Erreur: pas de commande. Voir '".$_SERVER['argv'][0]." help'.\n");
}
$argv = $_SERVER['argv'];
$script_nom = array_shift($argv); // shift le nom du script
$commande_nom = array_shift($argv); // prend le nom de la commande
// Chargement de la commande
$Script = Script::charger($commande_nom);
$parametres = Script::getParametres($argv);
// Lancement de la commande
$Script->initialiser($parametres);
$Script->executer();
?>