brnysn / laravel-h5p
无需额外依赖即可为 Laravel 提供的 H5P 集成。
1.1.0
2023-09-26 14:45 UTC
Requires
- php: >=7.4
- bensampo/laravel-enum: >=2.0
- h5p/h5p-core: ^1|dev-master
- h5p/h5p-editor: ^1|dev-master
- laravel/framework: ^8|^9
Requires (Dev)
- guzzlehttp/guzzle: ^7
- laravel/legacy-factories: ^1.0.4
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
从 https://github.com/EscolaLMS 分支而来
描述
此包提供了 Laravel API,用于与 H5P 内容交互,无需安装 无关 依赖。
主仓库需要安装 8 个无关的包 - 其中大部分是 escolalms 依赖 -
- EscolaLms/core
- EscolaLms/auth
- EscolaLms/settings
- EscolaLms/files
- EscolaLms/categories
- EscolaLms/model-fields
- spatie/permission
- laravel/socialite
原始文档
特性
该库允许无头
- 播放所有 h5p 内容 - 暴露所有必要数据,但仍需播放器
- 编辑所有 h5p 内容 - 暴露所有必要数据,但仍需编辑器
- CRUD 库
- CRUD 内容
- 从
.h5p文件上传库 - 从
.h5p文件上传内容
查看 Swagger 记录的端点。
一些 测试 也可以是一个很好的起点。
要播放内容,可以使用 EscolaLMS H5P Player
安装
composer require brnysn/headless-h5pphp artisan migratephp artisan h5p:storage-link(见下文)
存储链接
您需要发布许多文件以作为公开链接。
php artisan h5p:storage-link 该命令创建从 storage/app/h5 到 vendor/h5p/h5p-core 和 vendor/h5p/h5p-editor 的符号链接,以便公开访问,如下所示
public_path('h5p') => storage_path('app/h5p'),
public_path('h5p-core') => base_path().'vendor/h5p/h5p-core',
public_path('h5p-editor') => base_path().'vendor/h5p/h5p-editor',
CORS
所有端点都需要从其他域访问,因此必须正确设置 CORS。
除了端点资产外,还必须暴露 CORS 标头。您可以通过设置 Apache/Nginx/Caddy/Whatever 设置来实现 - 以下为 Nginx 的示例,用于通配符全局访问。
location ~* \.(eot|ttf|woff|woff2|jpg|jpeg|gif|png|wav|mp3|mp4|mov|ogg|webv)$ {
add_header Access-Control-Allow-Origin *;
}
授权
大多数端点都需要授权,这可以通过 Laravel Passport 实现
存在一个 seeder,必须运行以授权
用户模型来自 Auth 包。
seeder
要种子内容和库
php artisan db:seed --class="\EscolaLms\HeadlessH5P\Database\Seeders\ContentLibrarySeeder"
您可以使用内置的 seeder 命令来种子库和内容,该命令可通过
php artisan h5p:seed仅添加库php artisan h5p:seed --addContent添加带有库的内容
路线图
- 以类似 luminare in typescript 的方式重写 h5p 核心