-
Notifications
You must be signed in to change notification settings - Fork 1
/
Mormulous.php
107 lines (97 loc) · 3.06 KB
/
Mormulous.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
/**
* This file is just a helper made so you can play with Morm as fast as possible.
* It is not meant for production use.
*/
/**
* Conf constants
*/
//paths
define('BASE_PATH', dirname(__FILE__).'/');
define('MORM_PATH', BASE_PATH.'orm/');
define('MORM_CONF_PATH', BASE_PATH.'conf/');
define('EXCEPTION_PATH', BASE_PATH.'exception/');
define('MODELS_PATH', BASE_PATH.'models/');
define('GENERATED_MODELS_PATH', BASE_PATH.'models/'); //this one should be writable
//set here your database connection informations
define('DB_HOST', 'localhost');
define('DB_NAME', '');
define('DB_USER', NULL);
define('DB_PASSWORD', NULL);
/**
* Morm Autoloader
*/
function morm_autoloader($class)
{
$morm_classes = array(MORM_PATH => array('Morm'=> true,
'MormConf'=> true,
'MormUtils'=> true,
'Mormons'=> true,
'MovableMorm'=> true,
'SqlBuilder'=> true,
'SqlTools'=> true,
'TableDesc'=> true,
'FieldDesc'=> true,
'MormAttachement'=> true,
),
EXCEPTION_PATH => array('MormValidateException'=> true,
'MormNoForeignObjectToLoadException'=> true,
),
);
/**
* is the required class a Morm class ?
*/
foreach($morm_classes as $path => $classes)
{
if(isset($classes[$class]))
{
require_once($path.$class.'.php');
return true;
}
}
/**
* ok, maybe it's a model
*/
$class_path = MODELS_PATH.$class.'.php';
if(file_exists($class_path))
{
require_once($class_path);
return true;
}
/**
* well let's try to generate it
*/
$generated_class_path = GENERATED_MODELS_PATH.$class.'.php';
MormConf::generateMorm($class);
if(file_exists($generated_class_path))
{
require_once($generated_class_path);
return true;
}
/**
* I'm sorry, I did the best I could, but I could not load your class
*/
return false;
}
/**
* DB connection
*/
function db_connect()
{
$db = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$db) {
echo _("Error: DB connexion failed (check error log).\n");
exit;
}
if (!mysql_select_db(DB_NAME, $db)) {
printf(_("Error: %s (check error log).\n"),mysql_error($db));
exit;
}
// "SET NAMES 'utf8'",
// "SET lc_time_names = 'fr_FR'",
// if(isset($to_load['load_queries']) && is_array($to_load['load_queries']))
// foreach($to_load['load_queries'] as $query)
// SqlTools::sqlQuery($query);
}
spl_autoload_register('morm_autoloader');
db_connect();