Subversion Repositories Applications.referentiel

Rev

Rev 20 | Go to most recent revision | Details | Compare with Previous | 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)));
26 jpm 49
	$fichier = ES_CHEMIN_MODULE.$module.DS.$classe.'.php';
20 jpm 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) {
26 jpm 56
		$fichier = $chemin.$classe.'.php';
20 jpm 57
 
26 jpm 58
		if (file_exists($fichier)) {
59
			require_once $fichier;
60
			break;
20 jpm 61
		}
62
	}
63
}
64
 
26 jpm 65
// Le fichier autoload.inc.php du Framework de Tela Botanica doit être appelée avant tout autre chose dans l'application.
66
// Sinon, rien ne sera chargé.
67
// Chemin du fichier chargeant le framework requis
68
$framework = dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'interfaces'.DIRECTORY_SEPARATOR.'framework.php';
69
if (!file_exists($framework)) {
70
	$e = "Veuillez paramêtrer l'emplacement et la version du Framework dans le fichier $framework";
71
	trigger_error($e, E_USER_ERROR);
72
} else {
73
	// Inclusion du Framework
74
	require_once $framework;
75
	// Ajout d'information concernant cette application
76
	Application::setChemin(__FILE__);// Obligatoire
77
	Application::setInfo(Config::get('info'));
78
 
79
	/**
80
	 * récupération du nom de la commande et éventuellement du nom de l'application
81
	 */
82
	if ($_SERVER['argc'] < 2){
83
	   die("Erreur: pas de commande. Voir '".$_SERVER['argv'][0]." help'.\n");
84
	}
85
 
86
	$argv = $_SERVER['argv'];
87
	$script_nom = array_shift($argv); // shift le nom du script
88
	$commande_nom = array_shift($argv); // prend le nom de la commande
89
 
90
	// Chargement de la commande
91
	$Script = Script::charger($commande_nom);
92
	$parametres = Script::getParametres($argv);
93
 
94
	// Lancement de la commande
95
	$Script->initialiser($parametres);
96
	$Script->executer();
97
 
98
	// Affichage des execptions et erreurs générées par le script
99
	echo GestionnaireException::getExceptions();
20 jpm 100
}
101
?>