类名 | 文件名 | 路径 | |
模型类m | {$app}Mod | {$app}.mod.php | {$app}/model |
控制器类c | {$app}Ctl | {$app}.ctl.php | {$app}/control |
其他 | {$app} | {$app}.cls.php | {$app}/class |
可以实现一个简单的autoload函数
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
|
function
uct_autoload(
$class_name
) {
$auto_path
=
array
(
'ctl'
=>
'control'
,
'mod'
=>
'model'
,
'cls'
=>
'class'
,
);
$key
=
strtolower
(
substr
(
$class_name
, -3));
if
(isset(
$auto_path
[
$key
])) {
$dir
=
$auto_path
[
$key
] . DS .
strtolower
(
substr
(
$class_name
, 0, -3)) .
'.'
.
$key
.
'.php'
;
}
else
{
$dir
=
'class'
. DS .
strtolower
(
$class_name
) .
'.cls.php'
;
}
if
(!
empty
(
$GLOBALS
[
'_UCT'
][
'autoload'
])) {
foreach
(
$GLOBALS
[
'_UCT'
][
'autoload'
]
as
$app
) {
if
(
file_exists
(UCT_PATH .
'app'
. DS .
$app
. DS .
$dir
)) {
return
include
UCT_PATH .
'app'
. DS .
$app
. DS .
$dir
;
}
}
}
if
(
file_exists
(UCT_PATH .
'framework'
. DS .
$dir
)) {
return
include
UCT_PATH .
'framework'
. DS .
$dir
;
}
echo
'auto_load not found! '
.
$class_name
;
exit
(1);
}
|
如果想使用另一个模块里的函数可以使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
function
uct_use_app(
$app
) {
if
(
empty
(
$GLOBALS
[
'_UCT'
][
'autoload'
])) {
$GLOBALS
[
'_UCT'
][
'autoload'
] =
array
(
$app
);
return
true;
}
if
(!in_array(
$app
,
$GLOBALS
[
'_UCT'
][
'autoload'
])) {
array_unshift
(
$GLOBALS
[
'_UCT'
][
'autoload'
],
$app
);
return
true;
}
return
false;
}
|