Subversion Repositories Applications.referentiel

Rev

Rev 26 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 jpm 1
<?php
2
// Encodage : UTF-8
3
// +-------------------------------------------------------------------------------------------------------------------+
4
/**
5
* script
6
*
7
* Description : initialise le chargement et l'exécution des scripts
8
* Fichier d'origine jelix-scripts par Jouanneau Laurent
9
* copyright   2005-2007 Jouanneau laurent
10
* link        http://www.jelix.org
11
*
12
//Auteur original :
13
* @author       Jean-Pascal MILCENT <jpm@tela-botanica.org>
14
* @copyright	Tela-Botanica 1999-2008
15
* @licence		GPL v3 & CeCILL v2
16
* @version		$Id$
17
*/
18
// +-------------------------------------------------------------------------------------------------------------------+
19
// Récupération de la config générale
20
require dirname(__FILE__).DIRECTORY_SEPARATOR.'scripts.conf.php';
21
 
22
// Gestion de l'auto chargement des classes
23
function __autoload($classe)
24
{
25
	// Gestion des fichiers pésent dans le path
26
	$fichier = $classe.'.php';
27
	if (file_exists($fichier)) {
28
		require_once $fichier;
29
	}
30
 
31
	// Gestion des classes PEAR
32
	$fichier = ES_CHEMIN_PEAR;
33
	if (!substr_count($classe, '_') > 0) {
34
		$fichier .= $classe;
35
	} else {
36
 
37
		$tab_chemin = explode('_', $classe);
38
		foreach ($tab_chemin as $c => $v) {
39
			$fichier .= ($c == 0) ? $v.DS : $v;
40
		}
41
	}
42
	$fichier .= '.php';
43
	if (file_exists($fichier)) {
44
		require_once $fichier;
45
	}
46
 
47
	// Gestion des classes principales des modules
48
	$module = strtolower(str_replace(' ', '_', preg_replace('/([a-z])([A-Z])/', '$1 $2',$classe)));
49
	$fichier = ES_CHEMIN_MODULE.$module.DS.$classe.'.class.php';
50
	if (file_exists($fichier)) {
51
		require_once $fichier;
52
	}
53
 
54
	// Gestion des bibliothèques des scripts
55
	foreach ($GLOBALS['chemins_autoload'] as $chemin) {
56
		$fichiers = array(	$chemin.$classe.'.class.php',
57
							$chemin.$classe.'.php');
58
 
59
		foreach ($fichiers as $fichier) {
60
			if (file_exists($fichier)) {
61
				require_once $fichier;
62
				break;
63
			}
64
		}
65
	}
66
}
67
 
68
/**
69
 * récupération du nom de la commande et éventuellement du nom de l'application
70
 */
71
if ($_SERVER['argc'] < 2){
72
   die("Erreur: pas de commande. Voir '".$_SERVER['argv'][0]." help'.\n");
73
}
74
 
75
$argv = $_SERVER['argv'];
76
$script_nom = array_shift($argv); // shift le nom du script
77
$commande_nom = array_shift($argv); // prend le nom de la commande
78
 
79
// Chargement de la commande
80
$Script = Script::charger($commande_nom);
81
$parametres = Script::getParametres($argv);
82
 
83
// Lancement de la commande
84
$Script->initialiser($parametres);
85
$Script->executer();
86
 
87
?>