public function factory($name, $type = self::CORE)
{
$result = null;
if (is_string($name)) {
$className = self::CLASSNAME_PREFIX . ucfirst(strtolower($name));
if (isset($this->_classInstances[$className])) {
$result = $this->_classInstances[$className];
} else {
iaSystem::renderTime('class', 'Loading class ' . $className);
$fileSize = $this->loadClass($type, strtolower($name) == 'db' ? INTELLI_CONNECT : $name);
if (false === $fileSize) {
return false;
}
iaDebug::debug('ia.' . $type . '.' . $name . iaSystem::EXECUTABLE_FILE_EXT . ' (' . iaSystem::byteView($fileSize) . ')', 'Initialized Classes List', 'info');
$result = new $className();
$result->init();
$this->_classInstances[$className] = $result;
}
} elseif (is_array($name)) {
$result = array();
foreach ($name as $className) {
$result[] = $this->factory($className, $type);
}
}
return $result;
}