/** * Return module name to module models directory. * * @return array */ public static function getAllModelDirectories() { $manager = Doctrine_Manager::getInstance(); $modelLoading = $manager->getAttribute(Doctrine_Core::ATTR_MODEL_LOADING); if (self::$_modelDirs == null) { $manager = Doctrine_Manager::getInstance(); $front = Zend_Controller_Front::getInstance(); $modules = $front->getControllerDirectory(); $modelDirectories = array(); // For all model styles make sure that they end with a / in the directory name!! if ($modelLoading == self::MODEL_LOADING_ZEND) { $controllerDirName = $front->getModuleControllerDirectoryName(); foreach ((array) $modules as $module => $controllerDir) { $modelDir = str_replace($controllerDirName, '', $controllerDir) . DIRECTORY_SEPARATOR . 'models' . DIRECTORY_SEPARATOR; $modelDirectories[$module] = $modelDir; } } else { if ($modelLoading == self::MODEL_LOADING_ZEND_MODULE_LIBRARY) { $controllerDirName = $front->getModuleControllerDirectoryName(); foreach ((array) $modules as $module => $controllerDir) { $modelDir = str_replace($controllerDirName, '', $controllerDir) . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . self::_formatModuleName($module) . DIRECTORY_SEPARATOR . 'Model' . DIRECTORY_SEPARATOR; $modelDirectories[$module] = $modelDir; } } else { if ($modelLoading == self::MODEL_LOADING_ZEND_SINGLE_LIBRARY) { if (!self::$_singleLibraryPath) { throw ZFDoctrine_DoctrineException::libraryPathMissing(); } foreach ((array) $modules as $module => $controllerDir) { $modelDirectories[$module] = self::$_singleLibraryPath . DIRECTORY_SEPARATOR . self::_formatModuleName($module) . DIRECTORY_SEPARATOR . 'Model' . DIRECTORY_SEPARATOR; } } else { throw ZFDoctrine_DoctrineException::invalidZendStyle(); } } } self::$_modelDirs = $modelDirectories; } return self::$_modelDirs; }