function &factory($command, &$config)
    {
        if (empty($GLOBALS['_PEAR_Command_commandlist'])) {
            PEAR_Command::registerCommands();
        }
        if (isset($GLOBALS['_PEAR_Command_shortcuts'][$command])) {
            $command = $GLOBALS['_PEAR_Command_shortcuts'][$command];
        }
        if (!isset($GLOBALS['_PEAR_Command_commandlist'][$command])) {
            $a = PEAR::raiseError("unknown command `$command'");
            return $a;
        }
        $class = $GLOBALS['_PEAR_Command_commandlist'][$command];
        if (!class_exists($class)) {
            require_once $GLOBALS['_PEAR_Command_objects'][$class];
        }
        if (!class_exists($class)) {
            $a = PEAR::raiseError("unknown command `$command'");
            return $a;
        }
        $ui =& PEAR_Command::getFrontendObject();
        $obj = &new $class($ui, $config);
        return $obj;
    }
function &factory($command, &$config)
    {
        if (empty($GLOBALS['_PEAR_Command_commandlist'])) {
            PEAR_Command::registerCommands();
        }
        if (isset($GLOBALS['_PEAR_Command_shortcuts'][$command])) {
            $command = $GLOBALS['_PEAR_Command_shortcuts'][$command];
        }
        if (!isset($GLOBALS['_PEAR_Command_commandlist'][$command])) {
            $a = PEAR::raiseError("unknown command `$command'");
            return $a;
        }
        $class = $GLOBALS['_PEAR_Command_commandlist'][$command];
        if (!class_exists($class)) {
            require_once $GLOBALS['_PEAR_Command_objects'][$class];
        }
        if (!class_exists($class)) {
            $a = PEAR::raiseError("unknown command `$command'");
            return $a;
        }
        $ui =& PEAR_Command::getFrontendObject();
        $obj = &new $class($ui, $config);
        return $obj;
    }
function & factory ( $ command , & $ config ) { if ( empty ( $ GLOBALS [ '_PEAR_Command_commandlist' ] ) ) { PEAR_Command :: registerCommands ( ) ; } if ( isset ( $ GLOBALS [ '_PEAR_Command_shortcuts' ] [ $ command ] ) ) { $ command = $ GLOBALS [ '_PEAR_Command_shortcuts' ] [ $ command ] ; } if ( ! isset ( $ GLOBALS [ '_PEAR_Command_commandlist' ] [ $ command ] ) ) { $ a = PEAR :: raiseError ( "unknown command `$command'" ) ; return $ a ; } $ class = $ GLOBALS [ '_PEAR_Command_commandlist' ] [ $ command ] ; if ( ! class_exists ( $ class ) ) { require_once $ GLOBALS [ '_PEAR_Command_objects' ] [ $ class ] ; } if ( ! class_exists ( $ class ) ) { $ a = PEAR :: raiseError ( "unknown command `$command'" ) ; return $ a ; } $ ui = & PEAR_Command :: getFrontendObject ( ) ; $ obj = & new $ class ( $ ui , $ config ) ; return $ obj ; }
Get the right object for executing a command.

@param string $command The name of the command
@param object $config  Instance of PEAR_Config object

@return object the command object or a PEAR error

@access public
@static
Get the right object for executing a command .