<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http:
-->
<?php
class
ClsFactory {
public
static
function
create() {
$args
= func_get_args();
if
(
count
(
$args
) <= 0) {
return
FALSE;
}
$classInfo
=
array_shift
(
$args
);
$params
=
$args
;
self::_createMain(
$classInfo
,
$params
);
}
private
static
function
_createMain(
$classInfo
,
$params
) {
$className
=
array_pop
(
$classInfo
);
$classPath
= SERVER_ROOT . implode(
'/'
,
$classInfo
).
'/'
.
$className
.
'.php'
;
if
(!
class_exists
(
$className
)) {
include_once
$classPath
;
}
if
(!
class_exists
(
$className
)) {
return
FALSE;
}
$ref
=
new
ReflectionClass(
$className
);
if
(
$ref
->hasMethod(
'__construct'
) && !
empty
(
$params
)) {
$obj
=
$ref
->newInstanceArgs(
$params
);
}
else
{
$obj
=
$ref
->newInstance();
}
return
$obj
;
}
}
?>