musonza / laravel-activity-streams
Laravel 包,帮助您在应用程序中处理feed和活动流
Requires
- php: >=7.1
- laravel/framework: 5.6.*|5.7.*|5.8.*|^6.0|^7.0
Requires (Dev)
- mockery/mockery: ^1.0.0
- orchestra/database: ^3.6|^3.6|^3.8|^4.0
- orchestra/testbench: ^3.6|^3.6|^3.8|^4.0
- phpunit/phpunit: ^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-14 23:59:14 UTC
README
Laravel Activity Streams
目录
点击展开
简介
此包使您能够在Laravel应用程序中拥有活动流。
安装
使用composer安装
composer require musonza/laravel-activity-streams
完成composer安装后,您可以为门面添加别名。打开config/app.php
,并执行以下更新
-
在
aliases
数组中添加一个新项目'ActivityStreams' => Musonza\ActivityStreams\ActivityStreamsFacade::class,
-
通过运行以下命令将配置文件发布到您的应用的
config
目录php artisan vendor:publish --tag="activity.streams.config"
-
通过运行以下命令将迁移发布到您的应用的
migrations
目录php artisan vendor:publish --tag="activity.streams.migrations"
-
运行迁移
php artisan migrate
使用
门面
每次您在代码中使用ActivityStreams
门面时,请记住在命名空间导入中添加以下行
use ActivityStreams;
赋予模型创建feed的能力
使用HasFeed
特性来允许模型拥有feed。
<?php use Illuminate\Database\Eloquent\Model; use Musonza\ActivityStreams\Traits\HasFeed; class User extends Model { use HasFeed; }
创建模型Feed
添加HasFeed
特性后,您可以创建如下所示的模型feed
$feed = $user->createFeed();
按需Feed
有时您可能想创建不属于模型的Feed。例如,您想将活动添加到您应用程序的趋势Feed中
创建一个类来表示在所选命名空间下的趋势feed
<?php namespace App; class Trending { // Optional implementation }
然后运行随包一起提供的 artisan 命令
php artisan streams:make:feed 'App\Trending' 'some-unique-id'
some-unique-id
相对于$table->unique(['some-unique-id', 'App\Trending']);
是唯一的
创建活动
一个活动的示例可能如下所示:John在2018Album中喜欢了一张照片
use ActivityStreams; use Musonza\ActivityStreams\ValueObjects\Verbs; $activity = ActivityStreams::setActor($actor) ->setVerb(Verbs::VERB_LIKE) ->setObject($object) ->setTarget($target) ->createActivity();
行为者
有效的行为者
您可以将Eloquent模型作为行为者传递,或者传递实现Musonza\ActivityStreams\Contracts\ActivityActor
接口的任何对象
目标
有效的目标
您可以将Eloquent模型作为目标传递,或者传递实现Musonza\ActivityStreams\Contracts\ActivityTarget
接口的任何对象
对象
有效的对象
您可以将Eloquent模型作为对象传递,或者传递实现Musonza\ActivityStreams\Contracts\ActivityObject
接口的任何对象
获取支持的动词
$verbs = ActivityStreams::verbs();
将活动添加到feed
ActivityStreams::addActivityToFeed($feed, $activity);
将多个活动添加到feed
将活动集合添加到feed
ActivityStreams::addActivityToFeed($feed, $activities);
将活动添加到多个feed
将活动添加到feed集合
ActivityStreams::addActivityToMultipleFeeds($feeds, $activity);
事件
您可以通过监听以下事件在您的应用程序中执行操作。例如,您可以监听ActivityCreated
事件,并根据您的业务逻辑将创建的事件添加到feed或多个feed。
ActivityCreated
Musonza\ActivityStreams\Models\Activity\ActivityCreated
ActivityDeleted
Musonza\ActivityStreams\Models\Activity\ActivityDeleted
FeedCreated
Musonza\ActivityStreams\Models\Activity\FeedCreated
FeedDeleted
Musonza\ActivityStreams\Models\Activity\FeedDeleted
配置
常见问题解答
有关活动流规范的更多信息,请参阅这里