monicahq / laravel-sabre
Sabre DAV服务器适配器,用于Laravel。
1.8.0
2024-03-01 23:13 UTC
Requires
- illuminate/support: ^8.0 || ^9.0 || ^10.0 || ^11.0
- sabre/dav: ^4.0
- thecodingmachine/safe: ^2.0
Requires (Dev)
- larastan/larastan: ^1.0 || ^2.0
- mockery/mockery: ^1.4
- ocramius/package-versions: ^1.9 || ^2.0
- orchestra/testbench: ^6.0 || ^7.0 || ^8.0 || ^9.0
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- phpunit/phpunit: ^9.0 || ^10.0 || ^11.0
- roave/security-advisories: dev-master
- thecodingmachine/phpstan-safe-rule: ^1.0
- vimeo/psalm: ^4.0 || ^5.6
README
Laravel-Sabre是用于在Laravel上使用Sabre.io DAV服务器的适配器。
安装
您可以使用Composer将此包安装到您的Laravel项目中
composer require monicahq/laravel-sabre
您不需要将此包添加到服务提供者中。
支持
此包支持Laravel 5.6及更高版本,并已在php 7.1及更高版本上进行了测试。
配置
如果您想,可以将包的配置文件发布到config/laravelsabre.php
php artisan vendor:publish --provider="LaravelSabre\LaravelSabreServiceProvider"
如果需要,您可以使用enabled
配置选项完全禁用LaravelSabre。
'enabled' => env('LARAVELSABRE_ENABLED', true),
更改path
配置以设置Sabre服务器将响应的URL路径。
用法
使用LaravelSabre\LaravelSabre
类向Sabre服务器添加节点集合和插件。
在上面的例子中,DAVServiceProvider
是一个已添加到config/app.php
文件中提供者列表的服务提供者。
节点
LaravelSabre::nodes()
用于向Sabre服务器添加节点集合。
它可以是数组,也可以是回调函数,如下面的例子所示
示例
use LaravelSabre\LaravelSabre; use Sabre\DAVACL\PrincipalCollection; use Sabre\DAVACL\PrincipalBackend\PDO as PrincipalBackend; class DAVServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { LaravelSabre::nodes(function () { return $this->nodes(); }); } /** * List of nodes for DAV Collection. */ private function nodes() : array { $principalBackend = new PrincipalBackend(); return [ new PrincipalCollection($principalBackend), ]; } }
插件
您可以使用以下任一方法
LaravelSbre::plugins()
来定义要添加到Sabre服务器的新的插件数组。它可以是回调函数。- 或使用
LaravelSbre::plugin()
向插件列表添加1个插件。
示例
use LaravelSabre\LaravelSabre; use LaravelSabre\Http\Auth\AuthBackend; use Sabre\DAV\Auth\Plugin as AuthPlugin; use Sabre\CardDAV\Plugin as CardDAVPlugin; class DAVServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { LaravelSabre::plugins(function () { return $this->plugins(); }); } /** * List of Sabre plugins. */ private function plugins() { // Authentication backend $authBackend = new AuthBackend(); yield new AuthPlugin($authBackend); // CardDAV plugin yield new CardDAVPlugin(); } }
认证
使用带有Authorize::class
中间件网关的LaravelSabre::auth()
方法,允许某些人根据某些标准访问。
示例
LaravelSabre::auth(function () { return auth()->user()->email == 'admin@admin.com'; })
许可证
此项目是MonicaHQ的一部分。
版权所有 © 2019–2022。
MIT许可证下授权。 查看许可证。