/** * 添加应用 * * @param PwApplicationDm $application * @return PwError true */ public function add($application) { $error = $application->beforeAdd(); if (true !== $error) { return new PwError('APPCENTER:validate.fail', array('error' => $error)); } return $this->_load()->add($application->getData()); }
/** * 注册应用信息 * * @param PwInstallApplication $install * @return PwError true */ public function registeApplication($install) { $manifest = $install->getManifest(); $application = new PwApplicationDm(); $application->setAppId($install->getAppId()); $application->setName($manifest->getApplication('name')); $application->setAlias($manifest->getApplication('alias')); $application->setVersion($manifest->getApplication('version')); $application->setPwVersion($manifest->getApplication('pw-version')); $application->setDescription($manifest->getApplication('description')); $application->setLogo($manifest->getApplication('logo')); $application->setWebsite($manifest->getApplication('website')); $application->setAuthorName($manifest->getApplication('author-name')); $application->setAuthorEmail($manifest->getApplication('author-email')); $application->setAuthorIcon($manifest->getApplication('author-icon')); $application->setCreatedTime(Pw::getTime()); $application->setModifiedTime(Pw::getTime()); // 1 - 前台入口 2 - 后台入口 4 - 非纯在线 8 - 站内应用 $status = 0; if ($tmp = $install->getTmpPackage()) { if (is_file($tmp . '/' . self::CONTROLLER)) { $status |= 1; } if (is_file($tmp . '/' . self::ADMIN)) { $status |= 2; } $status |= 4; } if ($install->getManifest()->getApplication('station', '0')) { $status |= 8; } $application->setStatus($status); if (!$application->beforeAdd()) { return new PwError('APPCENTER:install.mainfest.fail'); } $this->_load()->add($application); $install->setInstallLog('appId', $install->getAppId()); file_put_contents(DATA_PATH . 'tmp/log', 'app!', FILE_APPEND); return true; }