swisnl/laravel-lti-provider

0.1.1 2024-07-02 12:57 UTC

This package is auto-updated.

Last update: 2024-09-08 22:51:20 UTC


README

Latest Version on Packagist Software License Buy us a tree Build Status Total Downloads Made by SWIS

此包通过实现 Celtic LTI 包的 DataConnector,为 Celtic LTI 包和 Laravel 模型之间提供一个桥梁。

安装

通过 Composer

$ composer require swisnl/laravel-lti-provider

然后运行以下命令将所需文件(包括迁移文件)复制到您的项目中。

php artisan lti-provider:install

如果您已禁用 Laravel 包自动发现,请将服务提供者添加到您的 config/app.php 文件中

'providers' => [
    // ...
    Swis\Laravel\Lti\Providers\LtiProviderServiceProvider::class,
];

最后运行迁移。

php artisan migrate

Cron 任务

该包提供了一个命令来清理过期的 LTI nonces。要运行此命令,请将以下内容添加到您的 app/Console/Kernel.php 文件中

    protected function schedule(Schedule $schedule)
    {
        // ...
        $schedule->command('lti-provider:delete-expired-nonces')->daily();
    }

用法

定义一个用作 LTI 环境的模型。此模型应实现 Swis\Laravel\Lti\Contracts\LtiEnvironment。该包将所有其他模型限制到当前的 LTI 环境中。

使用此环境,您可以创建一个新的 ModelDataConnector 实例。此实例可以使用 Celtic LTI 包中的 DataConnector

    $environment = MyLtiEnvironment::find($id);
    $dataConnector = new ModelDataConnector($environment);

自定义

此包允许覆盖大多数模型。我们使用此功能覆盖一些模型以使用 UUID 而不是数字 ID,并添加一些额外功能(例如:向 UserResult 添加日志记录;以及使用相同的 Client 模型用于 LTI 和 Laravel Passport)。

要覆盖模型(除客户端外),创建一个扩展原始模型的类,并在 config/lti-provider.php 文件中注册新模型。例如,要覆盖 UserResult 模型,创建一个扩展 Swis\Laravel\Lti\Models\UserResult 类的类,并将以下内容添加到您的 config/lti-provider.php 文件中

        'models' => [
            'user-result' => 'REFERENCE TO YOUR NEW CLASS',
        ],

客户端有些不同,因为您不需要从现有类扩展。要覆盖客户端,创建一个实现 Swis\Laravel\Lti\Contracts\Client 接口的类,并在 config/lti-provider.php 文件中注册新模型。

有关如何实现您自己的客户端的灵感,请查看 Swis\Laravel\Lti\Models\SimpleClient 类(一个非常基本的实现)或 \Workbench\App\OverrideModels\Client 类(这是一个更复杂的示例,用于测试是否可以覆盖默认实现,以及包是否可以处理使用 UUID 而不是数字 ID 的客户端)。

变更日志

有关最近更改的详细信息,请参阅 CHANGELOG

贡献

请参阅 CONTRIBUTINGCODE_OF_CONDUCT 以获取详细信息。

安全性

如果您发现任何安全问题,请通过电子邮件 security@swis.nl 而不是使用问题跟踪器。

鸣谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件

本包是Treeware。如果您在生产环境中使用它,我们请求您为世界种一棵树以感谢我们的工作。通过为Treeware森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。

SWIS ❤️ 开源

SWIS是荷兰莱顿的一家网络机构。我们热爱与开源软件合作。