bensampo / laravel-embed
视频、幻灯片等内容的无缝响应式嵌入。
v2.5.0
2024-04-24 15:09 UTC
Requires
- php: ^7.4.0|^8.0
- guzzlehttp/guzzle: ^6.3.1|^7.0
- illuminate/contracts: ^8.83.27|^9.0|^10.0|^11.0
- illuminate/support: ^8.83.27|^9.0|^10.0|^11.0
Requires (Dev)
- laravel/framework: ^8.83.27|^9.0|^10.0|^11.0
- orchestra/testbench: ^5.0|^6.0|^9.0
- phpunit/phpunit: ^8.5.23|^9.0|^10.5
README
视频、幻灯片等内容的无缝响应式嵌入。
由Ben Sampson创建
需求
- Laravel
8
或更高版本 - PHP
7.4.0
或更高版本
安装
1. Composer
composer require bensampo/laravel-embed
2. 包含样式
在文档的<head>
元素内部某处包含
<x-embed-styles />
如果你希望在自己的CSS文件中包含样式,你可以复制styles.blade.php
的内容。
3. 发布视图(可选)
如果你想编辑任何视图,你可以发布它们
php artisan vendor:publish --provider="BenSampo\Embed\EmbedServiceProvider"
发布后,它们可以在/resources/views/vendor/embed/
中找到。
使用方法
只需在你的视图中包含以下blade组件,确保传递url
属性。
url
应该是你想要嵌入的页面的公共URL。
<x-embed url="https://www.youtube.com/watch?v=oHg5SJYRHA0" />
设置宽高比
默认情况下,大多数嵌入服务以16:9
的比例显示。某些服务可能具有更合适的默认值并覆盖此设置。但是,你可以通过传递给aspect-ratio
属性的比例来更改此设置。
<x-embed url="https://www.youtube.com/watch?v=oHg5SJYRHA0" aspect-ratio="4:3" />
宽高比在不同视口大小上保持不变。
回退
如果不存在处理URL的服务,将渲染回退视图。你可以通过发布视图并编辑/resources/views/vendor/embed/services/fallback.blade.php
来自定义它。
验证
可以使用验证规则来检查给定URL中是否支持服务。
use BenSampo\Embed\Rules\EmbeddableUrl; public function store(Request $request) { $this->validate($request, [ 'url' => ['required', new EmbeddableUrl], ]); }
你可以使用allowedServices
方法指定允许的服务列表。
use BenSampo\Embed\Services\Vimeo; use BenSampo\Embed\Services\YouTube; use BenSampo\Embed\Rules\EmbeddableUrl; public function store(Request $request) { $this->validate($request, [ 'url' => [ 'required', (new EmbeddableUrl)->allowedServices([ YouTube::class, Vimeo::class ]) ], ]); }
嵌入服务
Laravel embed支持多个流行的嵌入服务,如YouTube、Vimeo和Slideshare。
如果你想要嵌入的服务没有列出,请提交问题(或者更好的是提交PR!)。