URLOS内置函数
- 在模型中(model)中需使用$di调用下列方法,在钩子里面使用$this代替$di来调用,如$this->msg->errorExit(args...);
- 函数(方法)总数:288个。
/**
* 通过Agent下载文件
* @param [type] $agentUrl
* @param [type] $remoteFile
* @return void
*/
public function downloadFileFromAgent($agentUrl, $remoteFile)
#调用方法:$di->agent->downloadFileFromAgent(args...)
/**
* 返回供主控访问的AGENT网址
* @param [type] $nodeIp [description]
* @return [type] [description]
*/
public function getAgentUrlByIp($nodeIp)
#调用方法:$di->agent->getAgentUrlByIp(args...)
/**
* 返回供容器访问的AGENT网址
* @param [type] $agentUrlInSwarm
* @param [type] $agentUrlInSetting
* @return string
*/
public function getAgentUrlFromContainer($agentUrlInSwarm, $agentUrlInSetting)
#调用方法:$di->agent->getAgentUrlFromContainer(args...)
/**
* 获取某主机上的agent版本号
* @param [type] $nodeId [description]
* @return [type] [description]
*/
public function getVersion($nodeId, $connTimeout = 30)
#调用方法:$di->agent->getVersion(args...)
/**
* 获取App的预共享密钥
* @return string
*/
public function getAppSharePassword()
#调用方法:$di->app->getAppSharePassword(args...)
/**
* 获取应用的标签数组
* @param int $appId 应用id
* @param string $labelType 标签类型
* all:全部标签(默认值)
* type:类型标签(type__database, type__website)
* sys:系统标签(具有唯一性,如:sys__sftp, sys__proxy)
* normal:普通标签(不含双下划线)
* @return array [description]
*/
public function getLabelsArr($appId, $labelType = 'all')
#调用方法:$di->appLabel->getLabelsArr(args...)
/**
* 获取同类推荐应用(官网也需要)
* @return array
*/
public function getRecommendAppsArr($appId)
#调用方法:$di->appLabel->getRecommendAppsArr(args...)
/**
* 添加应用标签
* @param int $appId 应用ID
* @param string $labels 应用标签
* @param string $useMaxId 使用大ID
* @param string $delPrefixArr 需要删除的标签前缀
* @return bool
*/
public function saveLabels($appId, $labels, $useMaxId = true, $delPrefixArr = [])
#调用方法:$di->appLabel->saveLabels(args...)
/**
* 数组转换成对象
* @param [type] $e [description]
* @return [type] [description]
*/
public function array2object($e)
#调用方法:$di->arr->array2object(args...)
/**
* 把返回的数据集转换成Tree结构
* @param [type] $listArr
* @param string $pk
* @param string $pid
* @param string $child
* @param integer $root
* @param array $preAppendsArr 最后一层的字段值前面的附加内容,数组形式,如:['name' => '|-']
* @return array
*/
public function listToTree($listArr, $pk='id', $pid = 'pid', $child = 'children', $root = 0, $preAppendsArr = [])
#调用方法:$di->arr->listToTree(args...)
/**
* 多维数组排序
* @param [type] &$multi_array 多维数组名称
* @param [type] $sort_key 二维数组的键名
* @param [type] $sort 排序常量 SORT_ASC || SORT_DESC
* @return [type] [description]
*/
public function multiArraySort(&$multi_array, $sort_key, $sort = SORT_DESC)
#调用方法:$di->arr->multiArraySort(args...)
/**
* 对象转换成数组
* @param [type] $e [description]
* @return [type] [description]
*/
public function object2array($e)
#调用方法:$di->arr->object2array(args...)
/**
* 根据给定的key,给二维数组进行排序(排序结果与key的顺序相同)
* @param [type] $datasArr [description]
* @param [type] $sortKeyArr 哪些值排在最前面,如['val1', 'val2', 'val3'], 即把val1排在最前面
* @param [type] $keyName 根据哪一个字段进行排序?
* @return [type] [description]
*/
public function sortByKeys($datasArr, $sortKeyArr, $keyName = 'fieldName')
#调用方法:$di->arr->sortByKeys(args...)
/**
* 将字符串根据空白字符切开,转换为数组
* @param [type] $str
* @return void
*/
public function str2arrByBlank($str)
#调用方法:$di->arr->str2arrByBlank(args...)
/**
* 根据字段构建绑定数组
* @param array $fieldsArr
* @return void
*/
public function buildBindArr(array $fieldsArr)
#调用方法:$di->baseBind->buildBindArr(args...)
/**
* 根据action名称获取bindArr
* @param [type] $actionName
* @return void
*/
public function getBindArrByActionName($actionName)
#调用方法:$di->baseBind->getBindArrByActionName(args...)
/**
* 设置actionName
* @param [type] $actionName
* @return void
*/
public function setActionName($actionName)
#调用方法:$di->baseBind->setActionName(args...)
/**
* 设置modelName
* @param [type] $modelName
* @return void
*/
public function setModelName($modelName)
#调用方法:$di->baseBind->setModelName(args...)
/**
* 公共Action
* @param [type] $varsArr [description]
* @param [type] $funcName [description]
* @param string $viewFile [description]
* @return [type] [description]
*/
protected function commonAction($varsArr, $funcName, $viewFile = '_common/main', $allowHtmlCache = false, $allowJsonCache = false)
#调用方法:$di->baseController->commonAction(args...)
/**
* 设置modelName
* @param [type] $modelName
* @return void
*/
public function setModelName($modelName)
#调用方法:$di->baseData->setModelName(args...)
/**
* 自动调用控制器的魔术方法,一般需配合__call方法使用(仅支持在di的子类中使用$this调用)
* @param [type] $funcName 方法名称,如:list
* @param [type] $funcArgs 方法数组,如无请传入空数组[]
* @param string $moduleName 模块名称
* @param array $allowFuncNamesArr 允许调用的函数名数组
* @param bool $forceCall 是否强制调用(多重call时有用)
* @return void
*/
protected function _autoCallOtherModuleAction($funcName, $funcArgs, $moduleName, $allowFuncNamesArr, $forceCall = false)
#调用方法:$di->baseDi->_autoCallOtherModuleAction(args...)
/**
* 获取字段定义对象
* @param [type] $objName [description]
* @param [type] $module [description]
* @param [type] $av [description]
* @return [type] [description]
*/
public function getBind($model, $module = null, $av = null)
#调用方法:$di->baseDi->getBind(args...)
/**
* 获取控制器对象
* @param [type] $objName [description]
* @param [type] $module [description]
* @param [type] $av [description]
* @return [type] [description]
*/
public function getController($controller = null, $module = null, $av = null)
#调用方法:$di->baseDi->getController(args...)
/**
* 获取数据对象
* @param [type] $objName [description]
* @param [type] $module [description]
* @param [type] $av [description]
* @return [type] [description]
*/
public function getData($model, $module = null, $av = null)
#调用方法:$di->baseDi->getData(args...)
/**
* 获取字段定义对象
* @param [type] $objName [description]
* @param [type] $module [description]
* @param [type] $av [description]
* @return [type] [description]
*/
public function getField($model, $module = null, $av = null)
#调用方法:$di->baseDi->getField(args...)
/**
* 获取模型对象
* @param [type] $objName [description]
* @param [type] $module [description]
* @param [type] $av [description]
* @return [type] [description]
*/
public function getModel($model, $module = null, $av = null)
#调用方法:$di->baseDi->getModel(args...)
/**
* 设置modelName
* @param [type] $modelName
* @return void
*/
public function setModelName($modelName)
#调用方法:$di->baseField->setModelName(args...)
/**
* 返回插件信息
* @return void
*/
public function info()
#调用方法:$di->baseHook->info(args...)
/**
* 执行插件钩子运行结果
* @return void
*/
public function run()
#调用方法:$di->baseHook->run(args...)
/**
* 获取一条数据并转为数组
* @param [type] $dataValue 数据的值
* @param string $queryFieldName 查询字段
* @param [type] $sourceFunc 来源函数
* @return array
*/
public function getOneToArr($dataValue, $queryFieldName = 'id', $sourceFunc = NULL)
#调用方法:$di->baseModel->getOneToArr(args...)
/**
* 获取配置文件的配置值
* @param [type] $key key值
* @param string $basefile 配置文件目录下的基本文件名称,如: config.jsonc(默认), database.jsonc
* 其中$basefile支持相对路径和绝对路径,如果是相对路径,则母机存储目录DATA_ROOT下配置文件具有优先级,解析两个文件后进行数组合并后再返回相应的值
* @param string $returnType 当值为数组时可转换为对象再返回,此处的值为array或object
* @param bool $allowStaticCache 是否允许使用静态缓存(单次访问只读取一次配置文件)
* @return void
*/
public function get($key, $basefile = 'config.jsonc', $returnType = 'array', $allowStaticCache = true)
#调用方法:$di->config->get(args...)
/**
* 解析并返回配置文件的所有配置
* @param [type] $basefile 配置文件
* 其中$basefile支持相对路径和绝对路径,如果是相对路径,则母机存储目录DATA_ROOT下配置文件具有优先级,解析两个文件后进行数组合并后再返回
* @param bool $allowStaticCache 是否允许使用静态缓存(单次访问只读取一次配置文件)
* @return array
*/
public function getAllConfigsArr($basefile, $allowStaticCache = true)
#调用方法:$di->config->getAllConfigsArr(args...)
/**
* 根据别名获取配置值
* @param [type] $alias
* @param [type] $configsArr
* @return void
*/
public function getConfigArrByAlias($alias, $configsArr)
#调用方法:$di->config->getConfigArrByAlias(args...)
/**
* 根据别名获取字段配置的说明文字
* @param [type] $alias
* @param [type] $configsArr
* @return void
*/
public function getFieldTextByAlias($alias, $fieldName)
#调用方法:$di->config->getFieldTextByAlias(args...)
/**
* 根据别名获取字段配置的说明文字
* @param [type] $alias
* @param [type] $configsArr
* @return void
*/
public function getFieldTextByValue($value, $fieldName)
#调用方法:$di->config->getFieldTextByValue(args...)
/**
* 根据别名获取字段配置值
* @param [type] $alias
* @param [type] $configsArr
* @return void
*/
public function getFieldValueByAlias($alias, $fieldName)
#调用方法:$di->config->getFieldValueByAlias(args...)
/**
* 根据别名获取状态值
* 注意:需要先设置modelName,如果是从Config的子类中调用,则可省略
* @param [type] $alias
* @return void
*/
public function getStatusByAlias($alias, $modelName = null)
#调用方法:$di->config->getStatusByAlias(args...)
/**
* 根据状态别名获取状态说明文字
* 注意:需要先设置modelName,如果是从Config的子类中调用,则可省略
* @param [type] $alias
* @return void
*/
public function getStatusTextByAlias($alias)
#调用方法:$di->config->getStatusTextByAlias(args...)
/**
* 根据状态值获取状态说明文字
* 注意:需要先设置modelName,如果是从Config的子类中调用,则可省略
* @param [type] $alias
* @return void
*/
public function getStatusTextByValue($value, $modelName = null)
#调用方法:$di->config->getStatusTextByValue(args...)
/**
* 把配置文件解析为数组,失败则返回false
* @param [type] $baseJsonFile
* @return array|false
*/
public function parseConfigFileToArr($baseJsonFile)
#调用方法:$di->config->parseConfigFileToArr(args...)
/**
* 设置modelName
* @param [type] $modelName
* @return void
*/
public function setModelName($modelName)
#调用方法:$di->config->setModelName(args...)
/**
* 添加任务队列日志
* @param [type] $urlArr 需要执行的任务队列的url数组增加项,a的值必须以Cron结束,如: ['c' => 'test', 'a' => 'testCron']
* @param [type] $execResultJson 执行结果:msg类里的方法返回的结果,如$di->msg->error(args...)
* @param array $appendInsertArr 需要额外写入到cron数据表的自定义数组,如[uid => 2]
* @param bool $forceInsert 是否需要强制插入通知(默认为false,表示不插入重复的通知)
* @return int 插入数据的id
*/
public function add($urlArr, $execResultJson, $appendInsertArr = [], $forceInsert = false)
#调用方法:$di->cron->add(args...)
/**
* 添加异步通知
* @param [type] $execResultJson 执行结果:msg类里的方法返回的结果,如$di->msg->error(args...)
* @param array $appendInsertArr 插入到cron表的扩展数据,如['uid' => 15]
* @param bool $forceInsert 是否需要强制插入通知(默认为false,表示不插入重复的通知)
* @return void
*/
public function noticeAdd($execResultJson, $appendInsertArr = [], $forceInsert = false)
#调用方法:$di->cron->noticeAdd(args...)
/**
* 更新步骤说明
* @param [type] $stepCaption 如:这是第二步
* @return [type] [description]
*/
public function updateStep($stepCaption)
#调用方法:$di->cron->updateStep(args...)
/**
* 获取状态数组
* @return array
*/
public function getStatusConfigArr()
#调用方法:$di->cronConfig->getStatusConfigArr(args...)
/**
* 获取url内容
* @param [type] $url 网址链接
* @param integer $connTimeOut 连接时间
* @param integer $runTimeout 执行时间
* @param array $headersArr 传送的header数组
* @param boolean $justReturn 发生错误时,仅返回结果,不报错
* @return void
*/
public function get($url, $connTimeOut = 30, $runTimeout = 3600, $headersArr = [], $justReturn = false)
#调用方法:$di->curl->get(args...)
/**
* 多线程curl
* @param array $urlArr URL的数组
* @param integer $postDataArr post数据(默认为null,即GET模式)
* @param integer $connTimeOut 连接超时
* @param integer $runTimeout 执行超时
* @param array $headersArr
* @return void
*/
public function multi(array $urlArr, $postDataArr = null, int $connTimeOut = 30, int $runTimeout = 60, $headersArr = [])
#调用方法:$di->curl->multi(args...)
/**
* 发送post数据
* @param [type] $url 网址链接
* @param integer $connTimeOut 连接时间
* @param integer $runTimeout 执行时间
* @param array $headersArr 传送的header数组
* @param boolean $justReturn 发生错误时,仅返回结果,不报错
* @return void
*/
public function post($url, $postDataArr, $connTimeOut = 30, $runTimeout = 3600, $headersArr = [], $justReturn = false)
#调用方法:$di->curl->post(args...)
/**
* 执行CURL的PUT方法
* @param [type] $url 网址链接
* @param integer $connTimeOut 连接时间
* @param integer $runTimeout 执行时间
* @param array $headersArr 传送的header数组
* @param boolean $justReturn 发生错误时,仅返回结果,不报错
* @return void
*/
public function put($url, $connTimeOut = 30, $runTimeout = 3600, $headersArr = [], $justReturn = false)
#调用方法:$di->curl->put(args...)
/**
* 显示验证错误并自动定位到相应用步骤(service模块专用,因为service支持动态模型)
* @param [type] $msg 显示的信息
* @param [type] $fieldName 字段名
* @param [type] $appId 应用的ID
* @param array $msgAppendArr msgArr扩展数组(用于合并msgArr),默认为空数组
* @return [type] [description]
*/
public function serviceVerifyExit($msg, $fieldName, $appId = NULL, $msgAppendArr = [])
#调用方法:$di->di->serviceVerifyExit(args...)
/**
* 检查服务模型里的密码(如果发生错误则报错)
* @param [type] $str [description]
* @param [type] $fieldName [description]
* @param [type] $fieldCaption [description]
* @param [type] $appId [description]
* @return [type] [description]
*/
public function verifyServicePasswordExit($str, $fieldName, $fieldCaption, $appId)
#调用方法:$di->di->verifyServicePasswordExit(args...)
/**
* 发送邮件
* @param string $toEmail 收件地址
* @param string $subject 邮件主题
* @param string $body 邮件内容
* @param string $file 附件
* @return boolean
*/
public function sendEmail($toEmail, $subject, $body, $file = null)
#调用方法:$di->email->sendEmail(args...)
/**
* 系统管理员 && 开发模式
* @return [type] [description]
*/
public function isAdminDev()
#调用方法:$di->env->isAdminDev(args...)
/**
* 系统管理员 && 维护模式
* @return [type] [description]
*/
public function isAdminMaint()
#调用方法:$di->env->isAdminMaint(args...)
/**
* 是否为debug调试环境
* @return boolean
*/
public function isDebug()
#调用方法:$di->env->isDebug(args...)
/**
* 是否为demo环境
* @return boolean
*/
public function isDemo()
#调用方法:$di->env->isDemo(args...)
/**
* 是否为dev开发环境
* @return boolean 返回true或false
*/
public function isDev()
#调用方法:$di->env->isDev(args...)
/**
* 是否为maint维护环境
* @return boolean 返回true或false
*/
public function isMaint()
#调用方法:$di->env->isMaint(args...)
/**
* 是否为pro生产环境
* @return boolean 返回true或false
*/
public function isPro()
#调用方法:$di->env->isPro(args...)
/**
* 描述(description)字段的配置
* @param string $labelName 标签名:一般为“描述”
* @param integer $strlen 最大长度:默认128
* @param boolean $required 是否为必填项 true|false, 默认为false
* @param integer $inputStep 输入步骤 默认为1
* @return void
*/
public function descriptionFieldConfig($labelName = '描述', $strlen = 128, $required = false, $inputStep = 1)
#调用方法:$di->fieldUtils->descriptionFieldConfig(args...)
/**
* 邮箱(email)字段的配置
* @return void
*/
public function emailFieldConfig()
#调用方法:$di->fieldUtils->emailFieldConfig(args...)
/**
* 手机(mobile)字段的配置
* @return void
*/
public function mobileFieldConfig()
#调用方法:$di->fieldUtils->mobileFieldConfig(args...)
/**
* AES解密
* @param [type] $contents base64格式的字符串
* @param [type] $key 密钥
* @return 返回解密后的内容
*/
public function aesDecryptFromBase64($contents, $key)
#调用方法:$di->hash->aesDecryptFromBase64(args...)
/**
* AES加密,返回base64格式的字符串
* @param [type] $contents 需要加密的内容
* @param [type] $key 密钥
* @return string
*/
public function aesEncryptToBase64($contents, $key)
#调用方法:$di->hash->aesEncryptToBase64(args...)
/**
* 计算监控API签名并返回结果
* @param [array] $paramArr
* @param [string] $monitorApiPassword
* @return string
*/
public function buildApiSignature($paramArr, $monitorApiPassword)
#调用方法:$di->hash->buildApiSignature(args...)
/**
* 创建用户密码
* @param [type] $password 原始密码
* @return [type] 字符串
*/
public function createUserPassword($password)
#调用方法:$di->hash->createUserPassword(args...)
/**
* 解密来自数据库中的数据
* @param [type] $encryptdStr 从数据库中读取的已被加密的字符串
* @return [type] 返回解密后的字符串
*/
public function decryptDataFromDb($encryptdStr)
#调用方法:$di->hash->decryptDataFromDb(args...)
/**
* 加密监控API密钥
* @param string $password 源密码
* @return string
*/
public function encryptApiPassword($password)
#调用方法:$di->hash->encryptApiPassword(args...)
/**
* 加密字符串(用于存储在数据库中)
* @param [type] $str [description]
* @return [type] [description]
*/
public function encryptDataToDb($str)
#调用方法:$di->hash->encryptDataToDb(args...)
/**
* 获取长度为256位的aes随机密码
* @return [type] [description]
*/
public function getAesKey()
#调用方法:$di->hash->getAesKey(args...)
/**
* 获取动态的的HASH(使用36进制表示)
* @param [type] $sourceStr #原始字符
* @param [type] $length 长度
* @return string
*/
public function getDynamicHash($sourceStr, $length = 32)
#调用方法:$di->hash->getDynamicHash(args...)
/**
* 获取强密码
* @param [type] $sourcePassword
* @return void
*/
public function getStrongPassword($sourcePassword)
#调用方法:$di->hash->getStrongPassword(args...)
/**
* 生成htpasswd认证密码
* @param [type] $pass [description]
* @return [type] [description]
*/
public function htpasswd($password)
#调用方法:$di->hash->htpasswd(args...)
/**
* 生成mysql的密码
* @param [type] $input [description]
* @return [type] [description]
*/
public function mysqlPassword($input)
#调用方法:$di->hash->mysqlPassword(args...)
/**
* 校验用户密码
* @param [type] $password 原始密码
* @param [type] $hashedPassword 加密后的密码
* @return [type] true或false
*/
public function verifyUserPassword($password, $hashedPassword)
#调用方法:$di->hash->verifyUserPassword(args...)
/**
* 获取IMAGE ID
* @param [type] $imageUrl 镜像网址
* @param [type] $nodeArr 主机数组
* @return [type] [description]
*/
public function getImageID($imageUrl, $nodeArr)
#调用方法:$di->image->getImageID(args...)
/**
* 获取镜像网址
* @param [type] $imageUrl 镜像网址
* @return [type] [description]
*/
public function getImageUrl($imageUrl)
#调用方法:$di->image->getImageUrl(args...)
/**
* 生成并输入验证码
* @return [type] [description]
*/
public function getCaptcha($sessionKey, $strType = 'lower')
#调用方法:$di->img->getCaptcha(args...)
/**
* 获取修改时的inputData
* @param [type] $oldData [description]
* @return [type] [description]
*/
public function getEditInputDataArr(&$oldData, $model = null, $action = null)
#调用方法:$di->input->getEditInputDataArr(args...)
/**
* 显示只读的输入框
* @param [type] $labelName [description]
* @param [type] $fieldName [description]
* @param [type] $title [description]
* @param [type] $initialValue [description]
* @return [type] [description]
*/
public function showInput($labelName, $fieldName, $title, $initialValue, $inputStep = 1)
#调用方法:$di->input->showInput(args...)
/**
* 用于显示帮助
* @param [type] $labelName 标签名:如“帮助信息”
* @param [type] $fieldName 字段名:如“help”
* @param [type] $title 标题: 如“请输入帮助信息”
* @param integer $inputStep 输入步骤
* @return void
*/
public function showTitle($labelName, $fieldName, $title, $inputStep = 1)
#调用方法:$di->input->showTitle(args...)
/**
* 检查多语言设置的配置值(json)
* @param [type] $verifyData [description]
* @param integer $arrayType 1则为一维数组,2为二维数组
* @return [type] [description]
*/
public function checkLangJsonData($labelName, $verifyData, $arrayType)
#调用方法:$di->lang->checkLangJsonData(args...)
/**
* 获取多语言提示并替换其中的变量
* @param [type] $langKey 多语言变量key
* @param [type] $varsArr 传入的变量数组
* @param [type] $defaultValue 默认值
* @return [type] 字符串
*/
public function get($langKey, $varsArr = [], $defaultValue = NULL, $currentLang = NULL)
#调用方法:$di->lang->get(args...)
/**
* 从js中获取当前语言的内容
* {"cn": "中文内容", "en": "English Contents"}
* @param [type] $dataArr 数组
* @param [type] $field 字段
* @return void
*/
public function getCurrentLangContent($dataArr, $field)
#调用方法:$di->lang->getCurrentLangContent(args...)
/**
* 检查用户是否具有操作某资源的权限
* @param [type] $resourceMark 资源mark
* @param [type] $uid 用户id
* @return true|false
*/
public function check($resourceMark, $uid = UID)
#调用方法:$di->limit->check(args...)
/**
* 统一判断是否具有数据资源的访问和修改权限
* @param [type] $id 资源的id
* @param boolean $onlyReturnResult 是否返回结果
* @return void
*/
public function checkLimitById($id, $onlyReturnResult = false)
#调用方法:$di->limit->checkLimitById(args...)
/**
* 检查mca的资源访问权限
* @return [type] [description]
*/
public function checkLimitByMcaResource($onlyReturnResult = false, $mcaResourceMark = NULL)
#调用方法:$di->limit->checkLimitByMcaResource(args...)
/**
* 数据库报错时的过滤器(显示在生产环境下报容易看得懂的错误)
* @param [type] $errorContent [description]
* @return [type] [description]
*/
public function dbErrorFilter($errorContent, $action = null)
#调用方法:$di->msg->dbErrorFilter(args...)
/**
* 显示警告信息
* @param [type] $messageStr 信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据
*/
public function error($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->error(args...)
/**
* 显示警告信息并退出
* @param [type] $messageStr 信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据并退出
*/
public function errorExit($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->errorExit(args...)
/**
* 显示警告信息
* @param [type] $messageStr 失败信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据
*/
public function fail($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->fail(args...)
/**
* 显示警告信息并退出
* @param [type] $messageStr 失败信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据并退出
*/
public function failExit($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->failExit(args...)
/**
* 显示提示信息
* @param [type] $messageStr 信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据
*/
public function info($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->info(args...)
/**
* 显示提示信息并退出
* @param [type] $messageStr 信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据并退出
*/
public function infoExit($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->infoExit(args...)
/**
* 直接显示信息并退出,相当于echo $message并且exit;
* @param [type] $message [description]
* @return [type] [description]
*/
public function showExit($message, $langVarsArr = [])
#调用方法:$di->msg->showExit(args...)
/**
* 显示成功信息并退出
* @param [type] $messageStr 信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据并退出
*/
public function successExit($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->successExit(args...)
/**
* 显示警告信息
* @param [type] $messageStr 警告信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据
*/
public function warning($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->warning(args...)
/**
* 显示警告信息并退出
* @param [type] $messageStr 警告信息
* @param array $dataArr 需要传送的数据(PHP数组)
* @param array $theMsgExtArr 用于合并的msg扩展数组
* @param array $langVarsArr 语言提示变量替换
* @return [type] 返回json数据并退出
*/
public function warningExit($messageStr, $dataArr = [], $theMsgExtArr = [], $langVarsArr = [])
#调用方法:$di->msg->warningExit(args...)
/**
* 检查并获取docker的版本
* @param [type] $nodeId [description]
* @return [type] [description]
*/
public function checkDockerAndGetDockerVersion($nodeId)
#调用方法:$di->node->checkDockerAndGetDockerVersion(args...)
/**
* 主机的连接测试
* @param [type] $nodeId
* @param boolean $checkDockerStatus
* @return bool
*/
public function connCheck($nodeId, $checkDockerStatus = true)
#调用方法:$di->node->connCheck(args...)
/**
* 根据主机ID获取主机的系统类型和系统版本,通过数组返回
* @param [type] $nodeId [description]
* @param string $runBy ssh或agent
* @return [type] [description]
*/
public function getAndSaveOsInfoArr($nodeId, $runBy = 'agent')
#调用方法:$di->node->getAndSaveOsInfoArr(args...)
/**
* 根据swarmId获取管理主机(数组)
* @param [type] $swarmId
* @param boolean $checkRunning
* @param boolean $justReturn
* @return array
*/
public function getLeaderArrBySwarmId($swarmId, $checkRunning = false, $justReturn = false)
#调用方法:$di->node->getLeaderArrBySwarmId(args...)
/**
* 获取master的母机的内网IP
* @return void
*/
public function getMasterMachineIp($justReturn = false)
#调用方法:$di->node->getMasterMachineIp(args...)
/**
* 主机类型数组
* @return array
*/
public function getTypeIdConfigArr()
#调用方法:$di->nodeConfig->getTypeIdConfigArr(args...)
/**
* 日期转indexId
* @param [type] $dateTime
* @return void
*/
public function dateTime2indexId($dateTime)
#调用方法:$di->pageheat->dateTime2indexId(args...)
/**
* indexId转日期
* @param [type] $dateTime
* @return void
*/
public function indexId2dateTime($indexId)
#调用方法:$di->pageheat->indexId2dateTime(args...)
/**
* indexId转时间戳
* @param [type] $indexId
* @return void
*/
public function indexId2time($indexId)
#调用方法:$di->pageheat->indexId2time(args...)
/**
* 时间戳转indexId
* @param [type] $timestamp
* @return void
*/
public function time2indexId($timestamp)
#调用方法:$di->pageheat->time2indexId(args...)
/**
* 获取CSS的刷新标记(区分生产环境和开发环境)
* @return string
*/
public function getStaticFlashMark()
#调用方法:$di->path->getStaticFlashMark(args...)
/**
* 获取样式路径(相对网站根目录下的public目录,即相对sites/public目录)
* 如果样式所在的目录不存在,则返回0.1.0版本的样式目录
* @param boolean $forceLocal 强制使用本地路径(无CDN网址前缀)
* @return string
*/
public function getStylePath($forceLocal = false)
#调用方法:$di->path->getStylePath(args...)
/**
* 获取模板目录
* 如果模板目录不存在,则返回0.1.0版本的模板目录
* @return string
*/
public function getTplRoot()
#调用方法:$di->path->getTplRoot(args...)
/**
* 获取所有插件
* @return [type] [description]
*/
public function getAllPlugsArr($moduleName)
#调用方法:$di->plugin->getAllPlugsArr(args...)
/**
* 获取并实例化钩子对象
* @param [type] $plugin 格式为“插件名:插件版本”或者“插件类型:插件名:插件版本”,如:pluginName:v0_1_0, system:phpWebsites:v0_1_0
* @param [type] $hook 插件钩子的类名
* @param [type] $hookVars 传入到钩子文件的变量,在vars中可以通过print_r($hookVars)打印出来
* 如果key中含有checkExecCounts且值为false,则不检查插件钩子的调用次数(用在循环中调用插件钩子)
* @param string $pluginType 插件类型,共有以下3种插件类型:
* system(系统插件目录)
* official(官方插件目录)
* user(用户插件目录,一般用于调试)
* db(用户插件目录,稳定后的用户插件请移至数据库中)
* null(循环查找)
* @param string $moduleName 模块名,如:admin
* @return [type] 返回实例化后的钩子对象
*/
public function getHook($plugin, $hook, $hookVars = [], $pluginType = null, $moduleName = 'admin')
#调用方法:$di->plugin->getHook(args...)
/**
* 获取插件信息
* @param [type] $plugin [description]
* @return [type] [description]
*/
public function getPluginInfoArr($plugin, $moduleName)
#调用方法:$di->plugin->getPluginInfoArr(args...)
/**
* 是否为插件
* @param [type] $plugin
* @return boolean
*/
public function isPlugin($plugin)
#调用方法:$di->plugin->isPlugin(args...)
/**
* @param [type] $plugin 格式为“插件名:插件版本”或者“插件类型:插件名:插件版本”,如:pluginName:v0_1_0, system:phpWebsites:v0_1_0
* @param [type] $hook 插件钩子的类名,如:serviceEditDataSaved
* @param [type] $hookVars 传入到钩子文件的变量,在vars中可以通过print_r($hookVars)打印出来
* @param string $pluginType 插件类型,共有以下3种插件类型:
* system(系统插件目录)
* official(官方插件目录)
* user(用户插件目录,一般用于调试)
* db(用户插件目录,稳定后的用户插件请移至数据库中)
* null(循环查找)
* @param string $moduleName 模块名,如:admin
* @return [type] 返回run方法的执行结果
*/
public function runHook($plugin, $hook, $hookVars = [], $pluginType = null, $moduleName = 'admin')
#调用方法:$di->plugin->runHook(args...)
/**
* 检查是否为域名
* @param [type] $string [description]
* @return boolean [description]
*/
public function isDomain($string)
#调用方法:$di->regex->isDomain(args...)
/**
* 是否为邮箱
* @param [type] $string
* @return boolean
*/
public function isEmail($string)
#调用方法:$di->regex->isEmail(args...)
/**
* 检查是否为IPV4
* @param [type] $string [description]
* @return boolean [description]
*/
public function isIPV4($string)
#调用方法:$di->regex->isIPV4(args...)
/**
* 检查是否为md5字符串
* @param [type] $string [description]
* @param integer $length [description]
* @return boolean [description]
*/
public function isMd5($string, $length = 32)
#调用方法:$di->regex->isMd5(args...)
/**
* 检查是否为手机号
* @param [type] $string [description]
* @return boolean [description]
*/
public function isMobile($string)
#调用方法:$di->regex->isMobile(args...)
/**
* 是否为数字
* @param [type] $string [description]
* @return boolean [description]
*/
public function isNum($string)
#调用方法:$di->regex->isNum(args...)
/**
* 检查是否为合法的密码,失败时返回错误内容
* @param [type] $str 需要检查的字符串
* @param boolean $forceStrong 是否强制使用强密钥码证,值为true或false,默认为false
* @return 正确时返回true,错误返回具体的错误信息(字符串)
*/
public function isPassword($str, $forceStrong = false)
#调用方法:$di->regex->isPassword(args...)
/**
* 检查是否为端口
* @param [type] $port [description]
* @return boolean [description]
*/
public function isPort($port)
#调用方法:$di->regex->isPort(args...)
/**
* 检查是否为QQ号
* @param [type] $string [description]
* @return boolean [description]
*/
public function isQQ($string)
#调用方法:$di->regex->isQQ(args...)
/**
* 判断是否为uri,如svn://hostname, http://hostname
* @param [type] $string [description]
* @return boolean [description]
*/
public function isURI($string)
#调用方法:$di->regex->isURI(args...)
/**
* 判断并获取GET变量
* @param [type] $varName [description]
* @return [type] [description]
*/
public function get($varName, $checkType = true)
#调用方法:$di->request->get(args...)
/**
* 判断是否为ajax提交
* @return boolean [description]
*/
public function isAjax($allowGetJson = true)
#调用方法:$di->request->isAjax(args...)
/**
* 判断是否为post方法提交
* @return boolean [description]
*/
public function isPost()
#调用方法:$di->request->isPost(args...)
/**
* 判断并获取post变量
* @param [type] $varName [description]
* @return [type] [description]
*/
public function post($varName, $checkType = true)
#调用方法:$di->request->post(args...)
/**
* 获取所有资源组成数组输出,并且使用资源id为mark
* @return [type] [description]
*/
public function getAllResourcesArr()
#调用方法:$di->resource->getAllResourcesArr(args...)
/**
* 根据mark数组得到id数组(以mark为key)
* @param [type] $marksArr [description]
* @return [type] [description]
*/
public function getIdsFromMarks($marksArr)
#调用方法:$di->resource->getIdsFromMarks(args...)
/**
* 根据id数组得到mark数组(以id为key)
* @param [type] $idsArr [description]
* @return [type] [description]
*/
public function getMarksFromIds($idsArr)
#调用方法:$di->resource->getMarksFromIds(args...)
/**
* 获取用户的所有资源(可操作的资源)
* @param [type] $uid 用户ID
* @param string $updateHash
* @return void
*/
public function getUserResourcesArr($uid = UID, $updateHash = false)
#调用方法:$di->resource->getUserResourcesArr(args...)
/**
* 判断容器是否正在运行
* @param [type] $containerHostname 容器ID或者容器名
* @param [type] $nodeArr [description]
* @return boolean [description]
*/
public function containerIsRunning($containerHostname, $nodeArr)
#调用方法:$di->service->containerIsRunning(args...)
/**
* 删除指定服务的容器
* @param [type] $serviceId [description]
* @return [type] [description]
*/
public function deleteServiceContainers($serviceArr, $runType = 'sync')
#调用方法:$di->service->deleteServiceContainers(args...)
/**
* 部署成功的次数
* @param [type] $serviceId
* @return int
*/
public function deploySuccessedCounts($serviceId)
#调用方法:$di->service->deploySuccessedCounts(args...)
/**
* 获取已经启动成功的容器数组
* @return void
*/
public function getBootedContainersArr($serviceId, $checkRunning = true)
#调用方法:$di->service->getBootedContainersArr(args...)
/**
* 通过执行docker container inspect获取docker容器的状态
* @param [type] $containerName
* @param [type] $nodeId
* @return 如果能执行,返回状态数组:(
* array(
* ["Status"]=> string(7) "running"
* ["Running"]=> bool(true)
* ["Paused"]=> bool(false)
* ["Restarting"]=> bool(false)
* ["OOMKilled"]=> bool(false)
* ["Dead"]=> bool(false)
* ["Pid"]=> int(85498)
* ["ExitCode"]=> int(0)
* ["Error"]=> string(0) ""
* ["StartedAt"]=> string(30) "2019-02-16T10:51:02.531128639Z"
* ["FinishedAt"]=> string(20) "0001-01-01T00:00:00Z"
* )
*/
public function getContainerStateArr($containerName, $nodeId)
#调用方法:$di->service->getContainerStateArr(args...)
/**
* 获取某容器的docker logs
* @param [type] $containerHostname [description]
* @param [type] $nodeArr [description]
* @return [type] [description]
*/
public function getDockerLog($containerHostname, $nodeArr)
#调用方法:$di->service->getDockerLog(args...)
/**
* 获取集群内所有代理的IP
* @param [type] $swarmId
* @return array
*/
public function getProxyIpsArr($swarmId)
#调用方法:$di->service->getProxyIpsArr(args...)
/**
* 获取服务的文件数据的目录(file-manager容器)
* @param [type] $serviceId
* @return void
*/
public function getServiceDataDirInContainer($serviceId)
#调用方法:$di->service->getServiceDataDirInContainer(args...)
/**
* 获取服务部署的任务队列标识
* @param [type] $serviceArr [description]
* @return [type] [description]
*/
public function getServiceDeployCronMark($serviceId, $appendStr = '')
#调用方法:$di->service->getServiceDeployCronMark(args...)
/**
* 获取服务的文件数据的目录(母机)
* @param [type] $serviceId
* @return void
*/
public function getServiceFileDataDirInNode($serviceId)
#调用方法:$di->service->getServiceFileDataDirInNode(args...)
/**
* 获取代理的IP
* @param [type] $serviceName 代理服务的名称
* @return string
*/
public function getSysProxyIp($serviceName)
#调用方法:$di->service->getSysProxyIp(args...)
/**
* 获取系统代理服务的ID数组
* @param [type] $swarmId 集群ID
* @return array
*/
public function getSysProxyServiceIdsArr($swarmId = NULL)
#调用方法:$di->service->getSysProxyServiceIdsArr(args...)
/**
* 判断是否以docker run的方式运行容器
* @param [type] $serviceId [description]
* @return boolean [description]
*/
public function isContainer(array $serviceArr, $appArr = null)
#调用方法:$di->service->isContainer(args...)
/**
* 判断最后一次是否部署成功
* @param [type] $serviceId
* @return boolean 或 array(成功则返回日志的数据,否则返回false)
*/
public function isDeploySuccessed($serviceId)
#调用方法:$di->service->isDeploySuccessed(args...)
/**
* 判断是否为代理服务
* @param [type] $serviceName [description]
* @return boolean [description]
*/
public function isProxy($serviceName)
#调用方法:$di->service->isProxy(args...)
/**
* 获取最后一次部署的状态。成功返回1,否则返回0
* @param [type] $serviceId [description]
* @return (bool || array)
*/
public function isRunning(int $serviceId)
#调用方法:$di->service->isRunning(args...)
/**
* 根据服务id查找主机上的容器
* @param [type] $serviceId 服务ID
* @param boolean $allContainer 查找全部容器(包含已经停止掉的)
* @return [type] [description]
*/
public function searchServiceContainersByShell($serviceArr, $allContainer)
#调用方法:$di->service->searchServiceContainersByShell(args...)
/**
* 根据服务id下达部署服务的任务
* @param [type] $serviceId 服务id
* @param boolean $deploySwarm 是否部署集群
* @param boolean $forceDeploy 是否强制部署
* @param int $execPid 任务进程号(0为前端执行)
* @return [type] [description]
*/
public function sendDeployServiceCron($serviceId, $deploySwarm = true, $forceDeploy = false, $execPid = null, $execLevel = null)
#调用方法:$di->service->sendDeployServiceCron(args...)
/**
* 获取session值
* @param [type] $key key
* @param [type] $default 如果session变量不存在,则输出默认值
* @return 返回结果
*/
public function get($key, $default = null)
#调用方法:$di->session->get(args...)
/**
* 获取所有session
* @return array
*/
public function getAll()
#调用方法:$di->session->getAll(args...)
/**
* 获取SESSIONID
* @return string
*/
public function getSessionId()
#调用方法:$di->session->getSessionId(args...)
/**
* 获取session值
* @param [type] $key key
* @param [type] $default 如果session变量不存在,则输出默认值
* @return 返回结果
*/
public function load($key, $default = null)
#调用方法:$di->session->load(args...)
/**
* 写入session值
* @param [type] $key session的key
* @param [type] $val session的值
* @return [type] bool
*/
public function put($key, $val, $duration = 0)
#调用方法:$di->session->put(args...)
/**
* 删除session
* @param [type] $key [description]
* @return [type] [description]
*/
public function remove($key)
#调用方法:$di->session->remove(args...)
/**
* 删除所有session
* @return bool
*/
public function removeAll()
#调用方法:$di->session->removeAll(args...)
/**
* 写入session值
* @param [type] $key session的key
* @param [type] $val session的值
* @return [type] bool
*/
public function set($key, $val, $duration = 0)
#调用方法:$di->session->set(args...)
/**
* 获取某个选项的值
* @param [type] $opt [description]
* @return [type] [description]
*/
public function get($opt, $allowReadSettingConfigFile = true)
#调用方法:$di->setting->get(args...)
/**
* 生成以opt为key的数组
* @param [type] $uid [description]
* @return [type] [description]
*/
public function getAll()
#调用方法:$di->setting->getAll(args...)
/**
* 发送数据到主机
* @param [type] $url 网址
* @param [type] $shellEncrypt 加密后的shell
* @param [type] $connTimeout 连接超时时间
* @return [type] shell执行结果
*/
protected function _postShellToAgentAndExecIt($url, &$shellEncrypt, &$nodeArr, $connTimeout, $justReturn = false, $extArgsArr = [])
#调用方法:$di->shell->_postShellToAgentAndExecIt(args...)
/**
* 在agent端创建一个文件,如果文件所在的目录不存在,则自动创建
* @param string $filename 文件名称(绝对路径)
* @param string $contents 文件内容
* @param array $nodeArr 主机数组
* @param string $mode 文件权限,如:0777,0644
* @param integer $connTimeout 连接超时的时间
* @return [type] true or false
*/
public function createNodeFileByAgent($filename, $contents, $nodeArr, $mode = '0644', $connTimeout = 30)
#调用方法:$di->shell->createNodeFileByAgent(args...)
/**
* 获取通过cat创建文件时的shell代码
* @param [type] $filename 文件名(绝对路径)
* @param [type] $contents 文件内容
* @return string
*/
public function getCatContentsToFileShell($filename, $contents)
#调用方法:$di->shell->getCatContentsToFileShell(args...)
/**
* 通过docker的api获取信息
* @param [type] $url docker api url
* @param [type] $nodeArr 主机数组
* @param string $method 提交方法:GET, POST...
* @param [type] $postJsonData 当提交方法为POST时的post数据(json格式)
* @param integer $connTimeout 连接超时
* @return [type] [description]
*/
public function getDockerApi($url, $nodeArr, $method = 'GET', $postJsonData = null, $connTimeout = 30)
#调用方法:$di->shell->getDockerApi(args...)
/**
* 获取在容器内部发送通知的shell
* @param [type] $noticeTitle
* @param [type] $noticeContents
* @param [type] $noticeMark
* @return void
*/
public function getSendNoticeShellInContainer($noticeTitle, $noticeContents, $noticeMark)
#调用方法:$di->shell->getSendNoticeShellInContainer(args...)
/**
* 检查主机上的文件是否存在
* @param [type] $remoteFile 远程文件(绝对路径)
* @param [type] $nodeArr 主机数组
* @param string $fileType 文件类型(fil|dir|link|any)
* @return void
*/
public function remoteFileExists($remoteFile, &$nodeArr, $fileType = 'any')
#调用方法:$di->shell->remoteFileExists(args...)
/**
* 删除本地文件
* @param [type] $filename
* @return void
*/
public function rmLocalFile($filename)
#调用方法:$di->shell->rmLocalFile(args...)
/**
* 根据文件名kill主机端的程序
* @param [type] $filename [description]
* @param [type] $nodeArr [description]
* @return [type] [description]
*/
public function runAgentKill($filename, &$nodeArr)
#调用方法:$di->shell->runAgentKill(args...)
/**
* 使用agent执行node端的shell脚本
* @param [type] $shellArr shell数组
* @param [type] $nodeArr node信息(一维数组)
* @param integer $connTimeout 连接超时时间
* @param string $runType sync|async,同步或异步
* @param [type] $extArgsArr 其它参数
* @return void
*/
public function runAgentShell($shellArr, $nodeArr, $connTimeout = 30, $runType = 'sync', $extArgsArr = [])
#调用方法:$di->shell->runAgentShell(args...)
/**
* 执行本地shell脚本
* @param [type] $shellArr shell数组
* @param [type] $returnErrorIfFalse 如果值为false则直接弹出错误,否则返回false
* @return void
*/
public function runLocalShell($shellArr, $returnErrorIfFalse = true)
#调用方法:$di->shell->runLocalShell(args...)
/**
* 在多台主机上同时(批量)执行shell脚本
* @param [type] $shellArr SHELL数组,如:['ls /root/ -la', 'ls /etc/']
* @param [type] $nodeIpsArr 主机IP数组,如:['192.168.1.1', '192.168.1.2']
* @param integer $connTimeout 连接超时
* @param integer $runTimeout 执行超时
* @return array 返回以主机IP为key的一维数组,如果执行失败,则相应用值为false
*/
public function runMultiAgentShell($shellArr, $nodeIpsArr, $connTimeout = 10, $runTimeout = 10)
#调用方法:$di->shell->runMultiAgentShell(args...)
/**
* 在服务容器中执行脚本(通过keeper被动执行)
* @param [type] $serviceId 服务id
* @param [type] $shellArr 需要执行的shell脚本的名称,可执行installScript, configScript, bootScript, dataScript
* @return [type] 已执行则返回true,否则返回执行结果
*/
public function runServiceKeeperShell($serviceId, $scriptName)
#调用方法:$di->shell->runServiceKeeperShell(args...)
/**
* 在容器内部执行的命令的shell脚本(runInFileManagerShell的命令行里不能含有单引号)
* @param [type] $shellArr
* @return void
*/
public function runShellInContainer($shellArr, $nodeArr, $containerName = 'file-manager', $extArr = [])
#调用方法:$di->shell->runShellInContainer(args...)
/**
* 在容器内部执行的命令的shell脚本(runInFileManagerShell的命令行里不能含有双引号)
* @param [type] $shellArr
* @return void
*/
public function runShellInContainer2($shellArr, $nodeArr, $containerName = 'file-manager', $extArr = [])
#调用方法:$di->shell->runShellInContainer2(args...)
/**
* 执行快照备份
* @param array $serviceIdsArr 具体的服务(数组)
* @param bool $force 是否强制备份,如果是,则不受时间影响
* @return bool
*/
public function snapshotBackup($serviceIdsArr = [], $force = false, $snapshotAppendArr = [])
#调用方法:$di->snapshot->snapshotBackup(args...)
/**
* 快照状态
* @return array
*/
public function getStatusConfigArr()
#调用方法:$di->snapshotConfig->getStatusConfigArr(args...)
/**
* 快照类型数组
* @return array
*/
public function getTypeIdConfigArr()
#调用方法:$di->snapshotConfig->getTypeIdConfigArr(args...)
/**
* 通过PHP的openssl扩展创建证书(alpine不能用,真是蛋疼)
* @param [type] $domain 域名
* @param string $certsRoot 存储证书文件的目录(如果不存在则自动创建),默认值为/tmp/
* @param int $keybits 证书位数,默认为2048位
* @param bool $addRandDomainPrefix 是否给域名添加一个随机的前缀(避免冲突)
* @return array [公钥内容, 私钥内容]
*/
public function create($domain, $certsRoot = '/tmp/', $keybits = 2048, $addRandDomainPrefix = false, $fileBasename = null)
#调用方法:$di->ssl->create(args...)
/**
* 获取网站域名的证书信息
* @param [type] $sslCrtContents
* @param [type] $sslKeyContents
* @return array || false
*/
public function getX509CertInfoArr($sslCrtContents, $sslKeyContents)
#调用方法:$di->ssl->getX509CertInfoArr(args...)
/**
* 在数据目录下创建ssl证书文件
* @param [type] $domain 域名
* $addRandDomainPrefix 是否给域名添加一个随机的前缀(避免冲突)
* @return [type] [description]
*/
public function makeSslFiles($domain, $addRandDomainPrefix = true, $fileBasename = null)
#调用方法:$di->ssl->makeSslFiles(args...)
/**
* 获取数字的62进制
* @param [type] $num 10进制数字
* @return void
*/
/**
* 获取数字的62进制
* @param [type] $num10
* @param boolean $base64Encode 是否使用base64加密
* @return void
*/
public function get10to62($num10, $base64Encode = true)
#调用方法:$di->strings->get10to62(args...)
/**
* 62进制转10进制
* @param [type] $num62 62进制数字
* @param boolean $base64Encode 是否先使用base64解密
* @return void
*/
public function get62to10($num62, $base64Decode = true)
#调用方法:$di->strings->get62to10(args...)
/**
* 获取说明文字(用于提示描述中)
* @param [type] $captionArr 说明内容(数组)
* @return string 返回字符串,如:[text1:value1, text2:value2]
*/
public function getCaptionByArr($captionArr)
#调用方法:$di->strings->getCaptionByArr(args...)
/**
* 获取客户端IP(有可能返回多个IP)
* @return [type] [description]
*/
public function getClientIp($onlyOneIp = true)
#调用方法:$di->strings->getClientIp(args...)
/**
* 获取时间,返回当前时间的“2018-10-10 12:12:12”时间格式
* @return void
*/
public function getDateTime($timestamp = NULL)
#调用方法:$di->strings->getDateTime(args...)
/**
* 获取格式化过的标签
* @param [type] $appId
* @return string
*/
public function getFormatedLabels($labelsArr)
#调用方法:$di->strings->getFormatedLabels(args...)
/**
* 昨天结束时间
* @return string
*/
public function getLastDayEndDateTime()
#调用方法:$di->strings->getLastDayEndDateTime(args...)
/**
* 昨天开始时间
* @return string
*/
public function getLastDayStartDateTime()
#调用方法:$di->strings->getLastDayStartDateTime(args...)
/**
* 上月结束时间
* @return string
*/
public function getLastMonthEndDateTime()
#调用方法:$di->strings->getLastMonthEndDateTime(args...)
/**
* 上月开始时间
* @return string
*/
public function getLastMonthStartDateTime()
#调用方法:$di->strings->getLastMonthStartDateTime(args...)
/**
* 上季度结束时间
* @return string
*/
public function getLastSeasonEndDateTime()
#调用方法:$di->strings->getLastSeasonEndDateTime(args...)
/**
* 上季度开始时间
* @return string
*/
public function getLastSeasonStartDateTime()
#调用方法:$di->strings->getLastSeasonStartDateTime(args...)
/**
* 上周结束时间
* @return string
*/
public function getLastWeekEndDateTime()
#调用方法:$di->strings->getLastWeekEndDateTime(args...)
/**
* 上周开始时间
* @return string
*/
public function getLastWeekStartDateTime()
#调用方法:$di->strings->getLastWeekStartDateTime(args...)
/**
* 上年结束时间
* @return string
*/
public function getLastYearEndDateTime()
#调用方法:$di->strings->getLastYearEndDateTime(args...)
/**
* 上年开始时间
* @return string
*/
public function getLastYearStartDateTime()
#调用方法:$di->strings->getLastYearStartDateTime(args...)
/**
* 根据IP范围得到最大IP
* @param [type] $ipRange IP范围,如:192.168.0.0/24
* @param [type] $returnInt 返回整数
* @return string|int
*/
public function getMaxIp($ipRange, $returnInt = false)
#调用方法:$di->strings->getMaxIp(args...)
/**
* 获取部分字符串,中间部分显示为星号
* @param [type] $string 字符串内容
* @param integer $prefixLen 字符串前面保留的内容长度
* @param integer $suffixLen 字符串后面保留的内容长度
* @return void
*/
public function getSubStr($string, $prefixLen = 3, $suffixLen = 3, $starLen = 4)
#调用方法:$di->strings->getSubStr(args...)
/**
* 今天结束时间
* @return string
*/
public function getThisDayEndDateTime()
#调用方法:$di->strings->getThisDayEndDateTime(args...)
/**
* 今天开始时间
* @return string
*/
public function getThisDayStartDateTime()
#调用方法:$di->strings->getThisDayStartDateTime(args...)
/**
* 本月结束时间
* @return string
*/
public function getThisMonthEndDateTime()
#调用方法:$di->strings->getThisMonthEndDateTime(args...)
/**
* 本月开始时间
* @return string
*/
public function getThisMonthStartDateTime()
#调用方法:$di->strings->getThisMonthStartDateTime(args...)
/**
* 上季度结束时间
* @return string
*/
public function getThisSeasonEndDateTime()
#调用方法:$di->strings->getThisSeasonEndDateTime(args...)
/**
* 上季度开始时间
* @return string
*/
public function getThisSeasonStartDateTime()
#调用方法:$di->strings->getThisSeasonStartDateTime(args...)
/**
* 本周结束时间
* @return string
*/
public function getThisWeekEndDateTime()
#调用方法:$di->strings->getThisWeekEndDateTime(args...)
/**
* 本周开始时间
* @return string
*/
public function getThisWeekStartDateTime()
#调用方法:$di->strings->getThisWeekStartDateTime(args...)
/**
* 今年结束时间
* @return string
*/
public function getThisYearEndDateTime()
#调用方法:$di->strings->getThisYearEndDateTime(args...)
/**
* 今年开始时间
* @return string
*/
public function getThisYearStartDateTime()
#调用方法:$di->strings->getThisYearStartDateTime(args...)
/**
* 判断IP是否在某网络中(用于局域网判断)
* @param [type] $ip [description]
* @param [type] $network [description]
* @return [type] [description]
*/
public function ipInNetwork($ip, $network)
#调用方法:$di->strings->ipInNetwork(args...)
/**
* 把数组转换为JSON并格式化
* @param [type] $arr
* @return string
*/
public function jsonEncodeFormat($arr)
#调用方法:$di->strings->jsonEncodeFormat(args...)
/**
* 解释JSON为数组或PHP对象
* @param [type] $string [description]
* @param [type] $returnType 返回数组或者对象(array|object),默认返回数组
* @return [type] 非json则返回false,否则返回数组或对象
*/
public function parseJson($string, $returnType = 'array')
#调用方法:$di->strings->parseJson(args...)
/**
* 解释XML为数组或PHP对象
* @param [type] $string xml内容
* @param [type] $returnType 返回数组或者对象(array|object),默认返回数组
* @return [type] 非xml则返回false,否则返回数组或对象
*/
public function parseXml($string, $returnType = 'array')
#调用方法:$di->strings->parseXml(args...)
/**
* 随机字符
* @param number $length 长度
* @param string $type 类型
* @return string
*/
public function random($length=6, $type = 'normal')
#调用方法:$di->strings->random(args...)
/**
* 将秒转换为时间字符串(简写)
* @param [type] $seconds
* @return void
*/
public function sec2ShortTime($seconds)
#调用方法:$di->strings->sec2ShortTime(args...)
/**
* 将秒转换为时间字符串(多少年多少天)
* @param [type] $timestamp 时间戳
* @param [type] $showOneData 是否只显示一条数据
* @return void
*/
public function sec2time($timestamp, $showOneData = false)
#调用方法:$di->strings->sec2time(args...)
/**
* 切换样式
* @return void
*/
public function changeStyleType()
#调用方法:$di->style->changeStyleType(args...)
/**
* 根据百分比数字获取颜色(多用于表示健康状态)
* 小于50%为绿色,大于80%为红色
* @param [type] $floatNumber
* @return string
*/
public function getColorByPercentNumber($floatNumber)
#调用方法:$di->style->getColorByPercentNumber(args...)
/**
* 根据字符串自动计算颜色值
* @param [type] $str
* @return void
*/
public function getColorFromStr($str)
#调用方法:$di->style->getColorFromStr(args...)
/**
* 根据字符串自动计算颜色值(浅色系)
* @param [type] $str
* @return void
*/
public function getColorFromStr2($str)
#调用方法:$di->style->getColorFromStr2(args...)
/**
* 获取有颜色的列表文字(为列表中的文字加上颜色)
* @param [type] $text 需要显示的文字
* @param [type] $color 可选RGB颜色值(如#FF0000),颜色名称(red),NULL(默认,代表自动生成颜色)
* @return void
*/
public function getListTextHasColor($text, $color = NULL)
#调用方法:$di->style->getListTextHasColor(args...)
/**
* 解析并替换模板中的变量
* @param [type] $tplContents 模板内容
* @param [type] $vars 需要替换的模板变量
* @return [type] 返回解析并替换变量后的模板内容
*/
public function parse($tplContents, $vars)
#调用方法:$di->tpl->parse(args...)
/**
* 开启事务
* @param [type] $sourceMethod (来源方法:即从哪个方法开启的事务?主要用于跟踪日志)
* @return void
*/
public function begin($sourceMethod)
#调用方法:$di->ts->begin(args...)
/**
* 提交事务
* @return void
*/
public function commit()
#调用方法:$di->ts->commit(args...)
/**
* 回滚事务
* @return void
*/
public function rollBack()
#调用方法:$di->ts->rollBack(args...)
/**
* 生成网址(与$_GET合并)
* @param [type] $urlArr url数组,如array('c' => 'user', 'a' => 'list')
* @param [type] $returnAllArr 如果为真,则返回数组,不拼接成url字符串
* @return [type] [description]
*/
public function build($urlArr, $returnAllArr = false)
#调用方法:$di->url->build(args...)
/**
* 根据已生成的全url数组返回url字符串
* @param [type] $urlArr 已构建的urlArr
* @return void
*/
public function buildByUrlAllArr($urlArr)
#调用方法:$di->url->buildByUrlAllArr(args...)
/**
* 获取当前基本URL
* @param boolean $clearPort 清除端口
* @return string
*/
public function getCurrentBaseUrl($clearPort = false)
#调用方法:$di->url->getCurrentBaseUrl(args...)
/**
* 获取当前域名
* @return string
*/
public function getCurrentDomain()
#调用方法:$di->url->getCurrentDomain(args...)
/**
* 获取主控网址
* @return [type] [description]
*/
public function getMasterUrl()
#调用方法:$di->url->getMasterUrl(args...)
/**
* 获取当前页
* @return [type] [description]
*/
public function getPage()
#调用方法:$di->url->getPage(args...)
/**
* 获取每页最多显示多少条数据
* @return [type] [description]
*/
public function getPageSize()
#调用方法:$di->url->getPageSize(args...)
/**
* 获取重试次数
* @return [type] [description]
*/
public function getRetryCount()
#调用方法:$di->url->getRetryCount(args...)
/**
* 获取当前网址的http协议名称(http或https)
* @param boolean $getUrlPre 如果值为true,则返回http://或https://
* @return string http|https
*/
public function getScheme($getUrlPre = false)
#调用方法:$di->url->getScheme(args...)
/**
* 默认需要强制检查登录验证码
* 如果子类中存在_loginCheckGetCallback方法,可实现每个模块不同的登录检查
* @return void
*/
protected function _forceCheckLoginCaptcha()
#调用方法:$di->user->_forceCheckLoginCaptcha(args...)
/**
* 默认需要强制检查登录验证码
* 如果子类中存在_loginCheckGetCallback方法,可实现每个模块不同的登录检查
* @return void
*/
protected function _loginCheckGetCallback($userInfoArr)
#调用方法:$di->user->_loginCheckGetCallback(args...)
/**
* 根据用户名获取用户id
* @param [type] $userName
* @return void
*/
public function getNameByUid($uid)
#调用方法:$di->user->getNameByUid(args...)
/**
* 根据用户id获取用户名称
* @param [type] $userName
* @return void
*/
public function getUidByName($userName)
#调用方法:$di->user->getUidByName(args...)
/**
* 供选选输入框使用的用户(数组)
* @param boolean $allowShowNobodyUser 是否允许显示nobody用户,默认为true
* @return [type] [description]
*/
public function getUserSelectArr($allowShowNobodyUser = true)
#调用方法:$di->user->getUserSelectArr(args...)
/**
* 登录页的ajax数据(GET)
* @return void
*/
public function loginGet($dataArr = [])
#调用方法:$di->user->loginGet(args...)
/**
* 退出登录
* @return void
*/
public function logout()
#调用方法:$di->user->logout(args...)
/**
* 将登录时间和登录时的模块名等信息存入session
* @param [type] $uid
* @return bool
*/
public function saveLoginInfoToSession($uid)
#调用方法:$di->user->saveLoginInfoToSession(args...)
/**
* 重新保存用户信息至session
* @return void
*/
public function saveUserInfoToSession($uid)
#调用方法:$di->user->saveUserInfoToSession(args...)
/**
* 清除缓存
* @return [type] [description]
*/
public function flushCache($allCache = false, $justReturn = false)
#调用方法:$di->utils->flushCache(args...)
/**
* 获取列表中的删除链接
* @param [type] $dataArr [description]
* @return [type] [description]
*/
public function getActionsDelete($dataArr, $appendArr = [])
#调用方法:$di->utils->getActionsDelete(args...)
/**
* 获取列表中的修改链接
* @param [type] $dataArr [description]
* @return [type] [description]
*/
public function getActionsEdit($dataArr, $appendArr = [], $jumpUrlAppendArr = [])
#调用方法:$di->utils->getActionsEdit(args...)
/**
* 软件信息
* @param string $returnType
* @param boolean $getSourceData 获取原始信息(不合并)
* @return arr or obj
*/
public function softwareInfo($returnType = 'obj', $getSourceData = false)
#调用方法:$di->vars->softwareInfo(args...)
/**
* 输出HTML内容
* @param string $viewFile
* @return void
*/
public function outputHtml($viewFile = '_common/main')
#调用方法:$di->view->outputHtml(args...)
/**
* 设置html变量
* @param [type] $key [description]
* @param [type] $val [description]
*/
public function setViewVar($key, $val)
#调用方法:$di->view->setViewVar(args...)
/**
* 是否为“网站环境来源”的网站(网站跑在别的服务的容器中)
* @param [type] $serviceArr
* @return boolean
*/
public function getEnvServiceName($serviceArr)
#调用方法:$di->website->getEnvServiceName(args...)
/**
* 获取DB名称(只取服务名称的前16位)
* @param [type] $websiteServiceName
* @return void
*/
public function getMysqlDbName($websiteServiceName, $dbServiceId)
#调用方法:$di->website->getMysqlDbName(args...)
/**
* 更新数据库密码的SQL语句
* @param [type] $username 用户名
* @param [type] $mysqlPasswordField 密码字段名
* @param [type] $dbPassword 数据库密码(支持源密码和已经加密过的以*开头的密码)
* @param string $host 主机(一般是localhost或%)
* @return string
*/
public function getUpdateMysqlPasswordSql($username, $mysqlPasswordField, $dbPassword, $host = '%', $updatePasswordType = NULL)
#调用方法:$di->website->getUpdateMysqlPasswordSql(args...)
/**
* 获取所有的网站ID
* @param [type] $swarmId 集群ID
* @return array
*/
public function getWebsiteIdsArr($swarmId = NULL)
#调用方法:$di->website->getWebsiteIdsArr(args...)
/**
* 获取网站代理的服务名称
* @param [type] $nodeId
* @return void
*/
public function getWebsiteProxyServiceName($nodeId)
#调用方法:$di->website->getWebsiteProxyServiceName(args...)
/**
* 判断是否为云网站
* @param [type] $appArr
* @return boolean
*/
public function isCloudWebsite($appArr)
#调用方法:$di->website->isCloudWebsite(args...)
/**
* 判断是否为https网站,证书为空或不匹配,是为非https网站
* @param array $webServiceArr 网站服务数据
* @param boolean $checkCert true|false 是否检查证书
* @return boolean
*/
public function isHttpsWebsite($webServiceArr, $checkCert = false)
#调用方法:$di->website->isHttpsWebsite(args...)
/**
* 判断是否为单机网站
* @param [type] $appArr
* @return boolean
*/
public function isSingleWebsite($appArr)
#调用方法:$di->website->isSingleWebsite(args...)
/**
* 尝试登录mysql并获取mysql相关信息
* @param [type] $serviceArr mysql的服务数据(数组)
* @param [type] $mysqlRootPassword 源密码
* @param [type] $mysqlRootTmpPasswordsArr 执行语诡的root密码(多个)
* @param [type] $nodeArr 主机数据(数组)
* @return array:[数据库的密码字段名;执行mysql命令时的密码参数;远程root用户(root@%)是否存在;用户列表]
*/
public function loginAndGetMysqlInfoArr($serviceArr, $mysqlRootPassword, $mysqlRootTmpPasswordsArr, $nodeArr, $containerHostname)
#调用方法:$di->website->loginAndGetMysqlInfoArr(args...)
/**
* 重载代理服务
* @param [type] $swarmId 集群id
* @param [type] $proxyServiceId 指定具体的代理服务id
* @param [type] $onlyReturnResult 仅返回结果,不报错
* @return void
*/
public function reloadProxy($swarmId, $proxyServiceId = null, $onlyReturnResult = false, $runType = 'async')
#调用方法:$di->website->reloadProxy(args...)
/**
* 修改网站的数据库密码
* 由于数据库的密码是加密存储,请务必使用此方法进行更新!!!
* @param [type] $websiteServiceId 网站服务的ID
* @param [type] $dbPasswordSource 数据库的原始密码
* @param boolean $runDataScript 是否执行数据脚本(不执行则不会立即生效)
* @return bool
*/
public function updateDbPassword($websiteServiceId, $dbPasswordSource, $runDataScript = false)
#调用方法:$di->website->updateDbPassword(args...)
/**
* 获取允许升级的应用选项(数组)
* @param [type] $appId 应用id
* @return array
*/
public function getAllowUpdateAppOptionsArr($appId)
#调用方法:$di->getModel('app')->getAllowUpdateAppOptionsArr(args...)
/**
* 根据系统应用标签搜索系统应用
* @param [type] $label
* @return void
*/
public function getAppIdBySysLabel($label, $justReturn = false)
#调用方法:$di->getModel('app')->getAppIdBySysLabel(args...)
/**
* 根据唯一应用标签搜索系统应用
* @param [type] $label
* @return void
*/
public function getAppIdByUniqueLabel($label)
#调用方法:$di->getModel('app')->getAppIdByUniqueLabel(args...)
/**
* 根据app标签返回所有app的id
* @param [type] $label
* @return void
*/
public function getAppIdsByLabel($label)
#调用方法:$di->getModel('app')->getAppIdsByLabel(args...)
/**
* 检查APP是否含有数据模型
* @param [type] $appId [description]
* @return boolean true or false
*/
public function hasDataModel($appId)
#调用方法:$di->getModel('app')->hasDataModel(args...)
/**
* 获取模板的内容
* @param [type] $mark 模板标识
* @param [type] $version 软件版本
* @param [type] $uid 用户id
* @return [type] [description]
*/
public function getContents($mark, $version, $uid)
#调用方法:$di->getModel('appTpl')->getContents(args...)
/**
* 根据serviceId得到所有模板对象(模板对象可能有多个)
* @param [type] $serviceId 服务id
* @return [type] [description]
*/
public function getTplsFromServiceId($serviceId)
#调用方法:$di->getModel('appTpl')->getTplsFromServiceId(args...)
/**
* 删除单条数据
* @param [type] $serviceId 服务id
* @param [type] $dataId 数据id(扩展变量和环境的数据id为0)
* @return [type] [description]
*/
public function deleteOne($serviceId, $dataId)
#调用方法:$di->getModel('dvalue')->deleteOne(args...)
/**
* 获取动态字段的列表数据
* @param [type] $serviceId 服务ID
* @param [type] $currentPage 当前页
* @param [type] $pageSize 每页信息条数
* @param [type] $getDelData 获取已删除的数据
* @return [type] [description]
*/
public function getList($serviceId, $currentPage, $pageSize, $getDelData)
#调用方法:$di->getModel('dvalue')->getList(args...)
/**
* 获取一条数据(service动态字段和动态数据均可用)
* @param [type] $serviceId 服务ID
* @param [type] $dataId 当传入值为0时,获取服务的扩展字段的值,否则获取动态数据的值
* @return [type] [description]
*/
public function getOne($serviceId, $dataId, $resultType = 'array')
#调用方法:$di->getModel('dvalue')->getOne(args...)
/**
* 根据服务id获取保存动态数据时的dataId
* @param [type] $serviceId [description]
* @return [type] [description]
*/
public function getSaveDataId($serviceId)
#调用方法:$di->getModel('dvalue')->getSaveDataId(args...)
/**
* 保存服务产生的数据(如在数据库服务中添加数据库)
* @param [type] $serviceId 服务ID
* @param array $dataArr
* @param [type] $dataId
* @param bool $disableCheck true|false 是否检查disabled属性
* @return void
*/
public function saveServiceData($serviceId, array $dataArr, $dataId = null, $disableCheck = false)
#调用方法:$di->getModel('dvalue')->saveServiceData(args...)
/**
* 保存应用扩展和环境变量(提示:扩展变量和环境变量都是data==0)
* @param [type] $serviceId [description]
* @param array $dataArr [description]
* @param bool $disableCheck true|false 是否检查disabled属性
* @return [type] [description]
*/
public function saveServiceVar($serviceId, array $dataArr, $disableCheck = false)
#调用方法:$di->getModel('dvalue')->saveServiceVar(args...)
/**
* 检查服务数据是否存在(服务产生的数据,如数据库服务的数据库)
* @param [type] $serviceId 服务ID
* @param [type] $fieldName 字段名
* @param [type] $valuesArr 值(数组)
* @return void
*/
public function serviceDataExists($serviceId, $fieldName, $valuesArr)
#调用方法:$di->getModel('dvalue')->serviceDataExists(args...)
/**
* 检查服务数据是否存在
* @param [type] $serviceId 服务id
* @return [type] true or false
*/
public function serviceDvalueExists($serviceId)
#调用方法:$di->getModel('dvalue')->serviceDvalueExists(args...)
/**
* 写入操作日志
* @param [type] $log 日志的具体内容(最大长度为100)
* @param string $description 日志的描述内容(最大长度为10240个字符)
* @param string $mark 日志标识
* @param array $appendArr 追加数组,如:需要为用户id为10的用户添加一条日志,此值设置为['uid'=>10]即可
*/
public function add($log, $description = '', $mark = '', $appendArr = [])
#调用方法:$di->getModel('log')->add(args...)
/**
* 获取任意字段的数据(主要供接口使用)
* @return void
*/
public function getAnyDatasAction($currentSearchFieldName = NULL)
#调用方法:$di->getController('moduleBase')->getAnyDatasAction(args...)
/**
* 获取数据的ID(主要供接口使用)
* @return void
*/
public function getDataIdsAction()
#调用方法:$di->getController('moduleBase')->getDataIdsAction(args...)
/**
* 获取网站服务的域名数组
* @param [type] $serviceId [description]
* @return array [description]
*/
public function getDomains($serviceId)
#调用方法:$di->getModel('serviceDomain')->getDomains(args...)
/**
* 添加域名
* @param [type] $serviceId [description]
* @param [type] $domainString [description]
* @return [type] [description]
*/
public function insertDomains($serviceId, $domainString)
#调用方法:$di->getModel('serviceDomain')->insertDomains(args...)
/**
* 从数据库中读取正在运行的容器
* @param [type] $serviceId 服务ID
* @param array $markArr 标识数组,如果是检查是否部署成功,请使用array('serviceDeployEnd')
* @param array $execStatusArr 执行状态(0为执行失败,1则执行成功)
* @return [type] 返回数组
*/
public function getServiceRunningContainersArr($serviceId, array $markArr, array $execStatusArr, $checkRunning = true)
#调用方法:$di->getModel('serviceLog')->getServiceRunningContainersArr(args...)
/**
* 添加服务
* @param array $mergeArr
* @param [type] $name 服务名称
* @param [type] $appId 应用ID
* @param [type] $swarmId 集群ID
* @param [type] $networkId 为0时则自动创建
* @return void
*/
public function addService(array $mergeArr, $name, $appId, $swarmId, $networkId)
#调用方法:$di->getModel('service')->addService(args...)
/**
* 获取与服务相关的数组,可调用$serviceArr, $appArr, $swarmArr, $imageArr, $leaderNodeArr等
* $serviceArr:服务数组
* $appArr:服务所使用的应用数组
* $swarmArr:服务所在的集群数组
* $imageArr:服务所使用的镜像数组
* $leaderNodeArr: 集群的其中一台管理主机的数组
* @param [type] $serviceId 服务id
* @param array $arrNames 需要调用数据的key组成的数组
* @return [type] 返回多维数组,建议使用list函数接收,
*/
public function getMergeArr($serviceId, $arrNames = [ 'serviceArr', 'appArr', 'imageArr', 'swarmArr', 'networkArr', 'dmodelAppExtArr', 'leaderNodeArr', 'nodeArr' ])
#调用方法:$di->getModel('service')->getMergeArr(args...)
/**
* 获取与扩展表合并的服务数组
* @param [type] $serviceId [description]
* @return [type] [description]
*/
public function getServiceMergeArr($serviceId)
#调用方法:$di->getModel('service')->getServiceMergeArr(args...)
/**
* 根据应用id下达部署服务的任务
* @param [type] $appId 应用id
*/
public function sendServiceDeployCronByAppId($appId, $forceDeploy = false)
#调用方法:$di->getModel('service')->sendServiceDeployCronByAppId(args...)
/**
* 根据选项名获取数据ID
* @param [type] $optionName 选项名
* @return void
*/
public function getIdByOpt($optionName)
#调用方法:$di->getModel('setting')->getIdByOpt(args...)
/**
* 通过cron创建网站
* 数据放在/data/urlos/tmp/websiteInitData.json文件中,格式如下:
* {
* "appId": 9, //应用ID
* "nodeId": 1, //主机ID(未设置则为1)
* "domains": "website-01.com", //域名
* "dbPassword": "dbPassword^123", //数据库密码
* "sftpPassword": "sftpPassword^123" //SFTP密码
* }
* @return void
*/
public function addWebsiteCronAction()
#调用方法:$di->getController('website')->addWebsiteCronAction(args...)