yousefyahya / share
与 Laravel 5/6/7/8/9 共享链接
6.0.0
2022-02-23 10:21 UTC
Requires
- php: >=8.0.2
- illuminate/support: 5.*|^6|^7|^8|^9
Requires (Dev)
- guzzlehttp/guzzle: >=7.0.1
- mockery/mockery: ^0.9.4
- orchestra/testbench: ~3.0
README
与 Laravel 5/6/7/8/9 共享链接
可用服务
- Delicious : delicious
- Digg : digg
- Email : email
- Evernote : evernote
- Facebook : facebook
- Facebook Messenger : fbMessenger
- Gmail : gmail
- Google Plus : gplus
- LinkedIn : linkedin
- Pinterest : pinterest
- Reddit : reddit
- Scoop.it : scoopit
- Telegram.me : telegramMe
- Tumblr : tumblr
- Twitter : twitter
- Viadeo : viadeo
- vk.com : vk
- Whatsapp : whatsapp
安装
步骤 1 : 安装 Composer 依赖
composer require Yousefyahya/share
步骤 2 : 注册服务提供者
将 Yousefyahya\Share\ShareServiceProvider 添加到 config/app.php 中的 providers 数组
步骤 3 : 注册别名
将 Share => Yousefyahya\Share\ShareFacade 添加到 config/app.php 中的 aliases 数组
使用方法
获取链接(以 Twitter 为例)
Route::get('/', function()
{
return Share::load('http://www.example.com', 'My example')->twitter();
});
返回字符串
https://twitter.com/intent/tweet?url=http%3A%2F%2Fwww.example.com&text=Link+description
获取多个链接
Route::get('/', function()
{
return Share::load('http://www.example.com', 'Link description')->services('facebook', 'gplus', 'twitter');
});
返回数组
{
"gplus" : "https://plus.google.com/share?url=http%3A%2F%2Fwww.example.com",
"twitter" : "https://twitter.com/intent/tweet?url=http%3A%2F%2Fwww.example.com&text=Link+description",
"facebook" : "https://#/sharer/sharer.php?u=http%3A%2F%2Fwww.example.com&title=Link+description"
}
获取所有链接
Route::get('/', function()
{
return Share::load('http://www.example.com', 'Link description')->services();
});
返回所有定义的服务的结果数组。
自定义
发布包配置
php artisan vendor:publish --provider='Yousefyahya\Share\ShareServiceProvider'
在 config/social-share.php 中添加新的服务
'mynewservice' => [ 'view' => 'share.mynewservice' ]
在 share.mynewservice 视图文件中添加 Blade 模板代码,以生成 mynewservice 的 URL。您可以访问
- service - 服务定义(如上所示)。
- sep - 两个参数之间的分隔符,默认为 '&'。可配置为 social-share.separator。
- url - 正在被共享的 URL。
- title - 正在被共享的标题。
- media - 正在被共享的媒体链接。
示例
https://mynewservice.example.com?url={{ rawurlencode($url) }}<?php echo $sep; ?>title={{ rawurlencode("Check this out! $title. See it here: $url") }}
对于 email 服务的另一个示例。将服务配置更改为 [ 'view' => 'whatever' ] 并在视图文件中添加以下内容
mailto:?subject={{ rawurlencode("Wow, check this: $title") }}<?php echo $sep; ?>body={{ rawurlencode("Check this out! $title. See it here: $url") }}
本地化?很简单,使用 Laravel 的 trans() 调用
mailto:?subject={{ rawurlencode(trans('share.email-subject', compact('url', 'title', 'media'))) }}<?php echo $sep ?>body={{ rawurlencode(trans('share.email-body', compact('url', 'title', 'media'))) }}
在 resources/lang/en/share.php 中创建文件,包含您选择的主题和正文。URL 的最大长度可能是 2000 个字符。
注意使用 。这是打印未编码的 &(如果已配置)的唯一方法。