URLOS内置函数

  1. 在模型中(model)中需使用$di调用下列方法,在钩子里面使用$this代替$di来调用,如$this->msg->errorExit(args...);
  2. 函数(方法)总数: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...)
Copyright © 广州市万岁云计算有限公司 2020 all right reserved,powered by Gitbook文档最近一次修订时间: 2022-08-27 15:23:56

results matching ""

    No results matching ""