Subversion Repositories Applications.referentiel

Rev

Rev 20 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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