public static function unregisterDAOPath($path) { if (WeLearn_Base_AutoLoader::hasInitiated()) { return WeLearn_Base_Loader::getInstance()->removeIncludePath($path); } else { throw new WeLearn_Base_LoaderNaoIniciadoException(); } }
/** * Inits the autoloading. * * @static * @param string|array $includePath (optional) string or array of strings of include paths to add to the loader * @return bool */ public static function init($includePath = null) { if (is_null($includePath)) { $includePath = realpath(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR); } self::$_loader =& WeLearn_Base_Loader::getInstance(); self::$_loader->addIncludePath($includePath); return self::registerAutoLoader(__CLASS__ . '::Autoload'); }
/** * @static * @throws Exception * |WeLearn_Base_LoaderNaoIniciadoException * |WeLearn_Base_ParametroInvalidoException * |WeLearn_DAO_DAOInvalidaException * |WeLearn_DAO_DAONaoEncontradaException * |WeLearn_DAO_CFNaoDefinidaException * @param string $nomeDao Nome da classe DAO * @param array|null $opcoes Opções que serão passadas como parâmetro * na inicialização da classe DAO e sua Column Family * @param boolean $DaoPadrao Indicador se a DAO à ser carregada extende a DAO padrão ou não. * * @return mixed */ public static function create($nomeDao, array $opcoes = null, $DaoPadrao = true) { //Criação de DAO não funciona se o autoload não estiver iniciado if (!WeLearn_Base_AutoLoader::hasInitiated()) { throw new WeLearn_Base_LoaderNaoIniciadoException(); } if (is_string($nomeDao) && $nomeDao !== '') { $classeDAO = $nomeDao; } elseif (is_object($nomeDao) && is_subclass_of($nomeDao, 'WeLearn_DTO_IDTO')) { $nsSseparator = WeLearn_Base_Loader::getInstance()->getNamespaceSeparator(); $classeComNamespace = explode($nsSseparator, get_class($nomeDao)); //Ultimo elemento do array é o nome da classe $classeSomenteNome = $classeComNamespace[count($classeComNamespace) - 1]; $classeDAO = $classeSomenteNome . 'DAO'; } else { throw new WeLearn_Base_ParametroInvalidoException(); } //Se a classe não foi definida if (!class_exists($classeDAO)) { spl_autoload_call($classeDAO); //Tenta carregar //Se ainda não estiver sido definida if (!class_exists($classeDAO)) { throw new WeLearn_DAO_DAONaoEncontradaException($classeDAO); } } //Se foi definida mas não extende a classe DAO padrão if ($DaoPadrao && !is_subclass_of($classeDAO, 'WeLearn_DAO_AbstractDAO')) { throw new WeLearn_DAO_DAOInvalidaException($classeDAO); } if ($DaoPadrao && !$classeDAO::isSingletonInstanciado()) { $DAOObject = $classeDAO::getInstanciaSingleton(); //Se o nome da Column Family da DAO não foi definido, não continua if (is_null($DAOObject->getNomeCF())) { throw new WeLearn_DAO_CFNaoDefinidaException($classeDAO); } //Rotina para criar o objeto que representa a Column Family (pode ser modificado) $CF = WL_Phpcassa::getInstance()->getColumnFamily($DAOObject->getNomeCF(), $opcoes); $DAOObject->setCF($CF); } elseif ($DaoPadrao) { $DAOObject = $classeDAO::getInstanciaSingleton(); } else { $DAOObject = new $classeDAO(); } return $DAOObject; }