swisnl / laravel-lti-provider
Laravel lti provider
Requires
- php: ^8.1 | ^8.2 | ^8.3
- celtic/lti: ^5.0
- laravel/framework: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.15
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.8
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-08 22:51:20 UTC
README
此包通过实现 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
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 以获取详细信息。
安全性
如果您发现任何安全问题,请通过电子邮件 security@swis.nl 而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件
本包是Treeware。如果您在生产环境中使用它,我们请求您为世界种一棵树以感谢我们的工作。通过为Treeware森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。
SWIS ❤️ 开源
SWIS是荷兰莱顿的一家网络机构。我们热爱与开源软件合作。