learnosity/learnosity-sdk-php

将此包包含到您的代码库中,以简化与Learnosity任何API的集成


README

Learnosity SDK - PHP

使用PHP编程语言开始构建您的应用程序所需的一切。
(喜欢其他语言? 点击此处)
官方Learnosity开源项目。

Latest Stable Version Build Status License Downloads Latest Unstable Version

目录

概述:它做什么?

Learnosity PHP SDK使与Learnosity API交互变得简单。

image-concept-overview.png

它为开发人员提供了一些便利功能,使以下基本任务变得简单:

  • 为API初始化创建签名安全请求,以及
  • 与数据API交互。

例如,SDK可以帮助创建Learnosity的签名请求

image-signed-request-creation.png

一旦SDK为您创建了签名请求,您的应用程序就会将其发送到Learnosity云中的API,然后检索您请求的评估,如下面的图所示

image-assessment-retrieval.png

这就是快速入门指南示例中运行的场景(见下文)。

还有更多功能。请参阅参考页面上的SDK功能详细列表。

(回到顶部)

需求

  1. 已安装PHP 8的运行时库。(说明

  2. 已安装Composer包管理器,或者从GitHub发布的自包含ZIP文件

不使用PHP?请参阅其他语言的SDK

(回到顶部)

安装

通过Composer安装

使用Composer是生产环境中安装PHP Learnosity SDK的推荐方式。最简单的方法是在您的父项目文件夹中运行此命令

composer require learnosity/learnosity-sdk-php "^1.0"

您也可以手动指定要求,通过将"learnosity/learnosity-sdk-php"作为依赖项添加到项目的composer.json文件中。

{
    "require": {
        "learnosity/learnosity-sdk-php": "^1.0"
    }
}

然后,使用以下命令安装新依赖项

composer update learnosity/learnosity-sdk-php

替代方法1:下载zip文件

GitHub发布页面下载SDK的最新版本作为自包含的ZIP文件。分发ZIP文件包含所有必要的依赖项。

然后,您可以将SDK引导文件包含到您的项目中,例如如果SDK解压到/srv/learnosity-sdk-php,那么您可以在项目中指定以下内容以包含SDK

<?php
    require_once "/srv/learnosity-sdk-php/bootstrap.php"

替代方法2:从git clone进行开发安装

在终端中运行以下命令进行安装

git clone git@github.com:Learnosity/learnosity-sdk-php.git

注意:安装后,请在learnosity-sdk-php文件夹中运行此命令

composer install

请注意,这些手动安装方法仅适用于开发和测试。对于生产使用,您应使用上述方法中描述的Composer包管理器安装SDK。

(回到顶部)

快速入门指南

让我们看看SDK的一个简单示例。在这个例子中,我们将加载一个评估到浏览器中。

启动您的Web服务器

您可以在SDK目录中运行以下命令来启动演示

make quickstart

如果您的PHP服务器正在运行,我们假设您的Web服务器可以通过以下本地地址访问

https://:8000

(有关Web服务器配置的更多信息,请点击此处

现在您可以使用以下URL访问API 点击此处

查看独立评估示例

现在通过在浏览器中访问以下地址来查看独立评估示例: https://:8000/assessment/standalone-assessment.php
(或从index.html页面中选择“独立评估”示例)。

这是一个将评估加载到网页中Learnosity评估播放器的基本示例。您可以与这个演示评估互动,尝试各种问题类型。

(回到顶部)

工作原理

让我们看看这个独立评估示例的代码。源文件包含在quickstart文件夹中,位置如下

.../learnosity-sdk-php/docs/quickstart/assessment/standalone-assessment.php

代码的第一部分是PHP,在服务器端执行。它为Items API构建一组配置选项,并使用消费者密钥安全地签署它们。第二部分是HTML和JavaScript,在页面加载到浏览器后客户端执行。它渲染并运行评估功能。

(回到顶部)

服务器端代码

我们首先包含一些LearnositySDK助手 - 它们将使生成和签署配置选项、唯一用户和会话ID变得容易。

<?php
    require_once __DIR__ . '/../../../../bootstrap.php';
    use LearnositySdk\Request\Init;
    use LearnositySdk\Utils\Uuid;
    $user_id = Uuid::generate();
    $session_id = Uuid::generate();

现在我们将声明Items API的配置选项。这些指定了应该渲染哪些评估内容、如何显示它、哪个用户正在进行此评估以及他们的响应应该如何存储。

    $request = [
        'user_id'        => $user_id,
        'activity_template_id' => 'quickstart_examples_activity_template_001',
        'session_id'     => $session_id,
        'activity_id'    => 'quickstart_examples_activity_001'
        'rendering_type' => 'assess',
        'type'           => 'submit_practice',
        'name'           => 'Items API Quickstart',
    ];
  • user_id:唯一的 学生标识符。注意:我们从未在这些请求中发送或保存学生的姓名或其他个人可识别信息。唯一的标识符应仅用于查找您系统内可访问的学生数据库中的条目。 了解更多
  • activity_template_id:从项目库检索活动的引用。活动定义了在此评估中提供哪些项目。
  • session_id:唯一标识此特定评估尝试,用于保存/恢复、数据检索和报告目的。在这里,我们使用Uuid助手自动生成唯一的会话ID。
  • activity_id:您定义的字符串,仅用于分析,允许您运行报告并比较提交相同评估的用户的结果。
  • rendering_type:选择渲染模式,assess模式是一个“独立”模式(加载完整的评估播放器进行导航,而不是inline嵌入)。
  • type:选择学生响应存储的上下文。submit_practice模式意味着学生的响应将存储在Learnosity云中,允许进行评分和审查。
  • name:友好的显示名称,将通过报告API和数据API显示在报告中。

注意:您可以提交配置选项,如上所示,作为PHP数组或JSON字符串。

接下来,我们声明用于授权此请求的Learnosity消费者凭据。本示例中的消费者密钥和消费者密钥是Learnosity公共“演示”账户的。一旦Learnosity提供您自己的消费者凭据,您的题库和评估数据将绑定到您自己的消费者密钥和密钥。

    $consumerKey = 'yis0TYCu7U9V4o7M';
    $consumerSecret = '74c5fd430cf1242a527f6223aebd42d30464be22';

(当然,您绝对不应该通常将密码提交到版本控制中)

在此,我们构建安全设置以确保报告在预期的域上初始化。提供给域属性的值必须与实际提供文件的域相匹配。

    $security = [
        'domain'       => $_SERVER['SERVER_NAME'],
        'consumer_key' => $consumerKey
    ];

现在我们调用LearnositySDK的Init()辅助函数来构建我们的项目API配置参数,并使用$security$consumerSecret参数安全地签名它们。$init->generate()返回一个签名的配置参数的JSON blob。

    $init = new Init(
        'items',
        $security,
        $consumerSecret,
        $request);
    $initOptions = $init->generate();
?>

(回到顶部)

网页内容

我们已经有了一组签名的配置参数,现在我们可以设置输出页面内容。页面可以非常简单或非常复杂,使用您自己的HTML、JavaScript和您选择的框架来呈现所需的产品体验。

本示例使用PHP页面中的纯HTML以简化。以下示例HTML可以在standalone-assessment.php文件的底部找到。

<!DOCTYPE html>
<html>
    <head><link rel="stylesheet" type="text/css" href="../css/style.css"></head>
    <body>
        <h1>Standalone Assessment Example</h1>
        <div id="learnosity_assess"></div>
        <script src="https://items.learnosity.com/?latest-lts"></script>
        <script>
            var itemsApp = LearnosityItems.init(
                <?php echo $initOptions; ?>
            );
        </script>
    </body>
</html>

在此HTML中需要注意的重要部分

  • 一个具有id="learnosity_assess"的div。Learnosity评估播放器将在此处渲染以交付评估。
  • 包含Learnosity项目API的<script src="https://items.learnosity.com/?latest-lts"></script>标签,并使全局LearnosityItems对象在页面中可用。指定的版本latest-lts将检索支持的最新版本。有关切换到特定LTS版本的更多信息,请访问长期支持(LTS)版本。在生产环境中,您应该始终锁定到特定的LTS版本,以确保版本兼容性。
  • 调用LearnosityItems.init(),该调用启动项目API以将评估播放器注入页面。
  • 使用PHP echo动态发送我们的签名JSON blob的$initOptions的内容,以便将其传递给init()

调用init()返回ItemsApp的实例,我们可以使用其方法来编程驱动评估。

这是快速入门指南的结束。从这里开始,尝试自己修改示例文件,您欢迎使用此代码作为您自己项目的起点。

请查看以下Learnosity评估功能的一些更深入选项和教程。

(回到顶部)

下一步:更多文档

SDK参考

SDK参考页面上查看所有SDK功能的更详细分解,以及如何使用更高级或专用功能的示例。

更多快速入门指南

还有更多的快速入门指南,这些指南超出了初始快速入门主题的加载评估,这些进一步的教程展示了如何设置创建和编辑新问题和题库项,并将评估项分组到活动中,以及如何设置作者和数据分析。

Learnosity演示存储库

在我们的演示网站上浏览许多Learnosity API集成的示例。您还可以下载整个演示网站源代码、任何单个演示的代码,或直接在GitHub上浏览代码库。

Learnosity开发者文档

请参阅Learnosity开发者文档以获取关于Learnosity API初始化选项、方法和事件的完整文档。

技术用例文档

技术用例概述中找到有关如何选择开发模式和安排Learnosity应用程序架构的指南。

决定要构建或集成什么

使用Learnosity "Golden Path"文档获取有关决定自行构建或集成现成应用程序功能的帮助。

关键Learnosity概念

想要了解更多关于Learnosity上的应用程序如何工作的通用信息?请查看我们的关键Learnosity概念页面

术语表

需要解释Item、Activity和Item bank在Learnosity中的独特含义?请参阅我们的Learnosity特定术语表

(回到顶部)

为此项目做出贡献

添加新功能或修复错误

欢迎贡献力量。有关更多信息,请参阅贡献说明页面。您也可以通过我们的支持团队取得联系。

(回到顶部)

许可证

Learnosity PHP SDK采用Apache 2.0许可证。了解更多信息请点击此处

(回到顶部)

使用跟踪

我们的SDK包括将以下信息添加到待签名的请求中的代码,以跟踪以下信息:

  • SDK版本
  • SDK语言
  • SDK语言版本
  • 主机平台(操作系统)
  • 平台版本

我们使用这些数据来启用更好的支持和功能规划。

(回到顶部)

进一步阅读

感谢您阅读到最后!有关使用Learnosity开发应用程序的更多信息,请参阅我们的文档网站

(回到顶部)