surface / laravel-webfinger
Laravel 包,用于创建 ActivityPub webfinger。
1.2.0
2023-03-12 00:00 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0|^10.0|^11.0
- illuminate/http: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
Requires (Dev)
- larastan/larastan: ^2.9.2
- nunomaduro/collision: ^6.4|^8.1.1
- nunomaduro/phpinsights: ^2.11
- orchestra/testbench: ^7.0|^8.21.1|^9.0
- phpro/grumphp: ^2.5
- phpstan/phpstan: ^1.10.60
- phpunit/phpunit: ^9.6.17|^10.5.13
- slevomat/coding-standard: ^8.15
- squizlabs/php_codesniffer: ^3.9
README
这创建了一个 webfinger,一种将信息附加到电子邮件地址或其他在线资源的方式。一旦安装,你应该能在 /.well-known/webfinger
下看到你的 JSON webfinger 配置文件。
安装
您可以通过 composer 安装此包
composer require surface/laravel-webfinger
您必须在 .env
文件中添加配置
WEBFINGER_INSTANCE=mastodon.instance WEBFINGER_USERNAME=your-username
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Surface\LaravelWebfinger\LaravelWebfingerServiceProvider"
扩展资源
转换为 JSON 响应的资源绑定到服务容器。这允许您轻松覆盖资源并添加额外信息。要更改绑定,请将以下内容添加到您的应用服务提供者。
use App\Http\Resources\Webfinger as WebfingerResource; use Surface\LaravelWebfinger\Http\Resources\Webfinger as PackageWebfinger; use Surface\LaravelWebfinger\Service\Webfinger as WebfingerService; $this->app->bind( PackageWebfinger::class, static fn (Container $app): WebfingerResource => new WebfingerResource( ...$app->make(WebfingerService::class) ) );
然后您将创建一个自定义资源,该资源扩展了基础资源。
<?php namespace App\Http\Resources; use Illuminate\Http\Request; use Illuminate\Support\Stringable; use Surface\LaravelWebfinger\Http\Resources\Webfinger as JsonResource; class Webfinger extends JsonResource { protected string $website; public function __construct(protected Stringable $instance, protected Stringable $username) { parent::__construct($instance, $username); $this->website = 'https://www.example.com'; } public function links(Request $request): array { return [ ...parent::links($request), [ 'rel' => 'self', 'type' => 'text/html', 'href' => $this->website, ], ]; } }
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件