jeyroik/extas-grades

该包最新版本(0.2.0)没有可用的许可信息。

提供评分逻辑

0.2.0 2020-10-02 13:15 UTC

This package is auto-updated.

Last update: 2024-09-29 06:25:39 UTC


README

tests codecov.io PHPStan Enabled Latest Stable Version Total Downloads Dependents

描述

此包允许组织计算任何复合参数 - 评分。

  • 评分 是基于某些系数计算出的参数。
  • 系数 是基于简单加法项计算出的参数。不建议基于其他系数计算系数 - 这时应该使用评分。
  • 加法项 是一个简单参数,它要么具有静态值,要么在不需要其他加法项、系数或评分的情况下进行计算。

这三个实体具有统一的接口,这使得它们可以以任何方便的方式组织。

安装

该包提供了一些默认插件来启动术语(加法项)、系数和评分的计算。

要安装这些插件,需要导入

extas.json

{
  "import": {
    "from": {
      "extas/grades": {
        "plugins": "*"
      }
    },
    "parameters": {
      "on_miss_package": {
        "name": "on_miss_package",
        "value": "continue"
      },
      "on_miss_section": {
        "name": "on_miss_section",
        "value": "throw"
      }
    }
  }
}

初始化和安装 extas

# vendor/bin/extas init # vendor/bin/extas install

运行测试

# composer test

使用

  1. 创建(或安装)术语(加法项)。1.1. 创建(或安装)术语计算器。
  2. 创建(或安装)系数。2.1. 创建(或安装)系数计算器。
  3. 创建(或安装)评分(评分)。3.1. 创建(或安装)评分计算器。
  4. # php -S 0.0.0.0:8080 -t vendor/jeyroik/extas-api/public
  5. # curl localhost:8080/api/jsonrpc -d '{"method":"grade.calculate", "params": {"names":["grade1"], "tag":"some.tag"}}'

执行请求后,将执行评分 grade1 的计算。

响应将大致如下

{
  "id": "<request.id>",
  "jsonrpc": "2.0",
  "result": {
    "grades": {
        "grade1": {
          "<grade.name>": "<grade.value>"
        }
    }
  }
}

与标准插件一起使用

标准插件基于术语的标签,具体如下

  • grade.term.*, grade.term.<grade> - 术语(加法项)的标签。
  • grade.coefficient.*, grade.coefficient.<grade> - 系数的标签。
  • grade.self.*, grade.self.<grade> - 评分(评分)的标签。

根据这些信息,按照上述说明执行步骤。

使用通配符

"默认插件" 提供了使用通用通配符 * 作为标签的功能。

这个细节允许在需要的情况下将任何加法项和系数的值“偷偷”带入响应中。

假设有一个名为 term1 的术语,其值为 public 并且具有标签 *

在上面的请求的响应中,它可以在评分数据中看到

{
  "id": "<request.id>",
  "jsonrpc": "2.0",
  "result": {
    "grades": {
        "grade1": {
          "<grade.name>": "<grade.value>",
          "term1": "public"
        }
    }
  }
}