iaCore::factory PHP Method

factory() public method

public factory ( $name, $type = self::CORE )
    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;
    }