/** * Find class by name * * @param string $className * @return boolean */ public static function findClass($className) { if (strpos($className, '\\')) { $classPath = explode('\\', $className); $moduleName = $classPath[0]; $result = Router::loadClass($className); if ($result && App::$cur) { if (!App::$cur->isLoaded($moduleName)) { App::$cur->loadObject($moduleName); } } return $result; } else { return Router::loadClass($className); } }
public function getSelectListModels($module = '') { $models = []; if ($module) { $modelsNames = $this->getModelsList($module); $info = Modules::getInfo($module); $moduleName = !empty($info['name']) ? $info['name'] : $module; foreach ($modelsNames as $modelName) { $fullModelName = $module . '\\' . $modelName; $models[$fullModelName] = $moduleName . ' - ' . ($fullModelName::$objectName ? $fullModelName::$objectName : $modelName); } } foreach (App::$primary->config['modules'] as $configModule) { if ($module == $configModule) { continue; } $modelsNames = $this->getModelsList($configModule); $info = Modules::getInfo($configModule); $moduleName = !empty($info['name']) ? $info['name'] : $configModule; foreach ($modelsNames as $modelName) { $fullModelName = $configModule . '\\' . $modelName; Router::loadClass($fullModelName); $models[$fullModelName] = $moduleName . ' - ' . ($fullModelName::$objectName ? $fullModelName::$objectName : $modelName); } } return $models; }