marufsharia/ laravel-streams-timeline
Laravel 包,帮助您在应用程序中处理动态、帖子、状态、活动流时间线
Requires
- php: ^8.0
- laravel/framework: ^8.0
Requires (Dev)
- mockery/mockery: ^1.4.4
- orchestra/database: ^6.0.0
- orchestra/testbench: ^6.24.0
- phpunit/phpunit: ^9.5.10
This package is auto-updated.
Last update: 2024-09-18 23:56:48 UTC
README
Laravel 活动流
目录
点击展开
简介
此包允许您在 Laravel 应用程序中拥有活动流。
安装
使用 composer 安装
composer require Marufsharia/laravel-activity-streams
composer 安装完成后,您可以为门面添加别名。打开 config/app.php
,并进行以下更新
-
向
aliases
数组中添加一个新条目'ActivityStreams' => Marufsharia\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;
赋予模型拥有动态的能力
使用 HasFeed
特性允许模型拥有动态。
<?php use Illuminate\Database\Eloquent\Model; use Marufsharia\ActivityStreams\Traits\HasFeed; class User extends Model { use HasFeed; }
创建模型动态
添加 HasFeed
特性后,您可以按以下方式为模型创建动态
$feed = $user->createFeed();
按需动态
有时您可能想要创建一个不属于模型的动态。例如,您想要将活动添加到应用程序的热门动态中
在您选择的命名空间下创建一个代表热门动态的类
<?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 Marufsharia\ActivityStreams\ValueObjects\Verbs; $activity = ActivityStreams::setActor($actor) ->setVerb(Verbs::VERB_LIKE) ->setObject($object) ->setTarget($target) ->createActivity();
参与者
有效的参与者
您可以将 Eloquent 模型作为参与者传递,或者传递实现 Marufsharia\ActivityStreams\Contracts\ActivityActor
接口的任何对象
目标
有效的目标
您可以将 Eloquent 模型作为目标传递,或者传递实现 Marufsharia\ActivityStreams\Contracts\ActivityTarget
接口的任何对象
对象
有效的对象
您可以将 Eloquent 模型作为对象传递,或者传递实现 Marufsharia\ActivityStreams\Contracts\ActivityObject
接口的任何对象
获取支持的动词
$verbs = ActivityStreams::verbs();
向动态中添加活动
ActivityStreams::addActivityToFeed($feed, $activity);
向动态中添加多个活动
将活动的 Collection
添加到 Feed
ActivityStreams::addActivityToFeed($feed, $activities);
将活动添加到多个 Feed
将 Activity
添加到 Collection
动态
ActivityStreams::addActivityToMultipleFeeds($feeds, $activity);
事件
您可以利用以下事件并在应用程序中执行操作。例如,您可以为 ActivityCreated
事件监听,并根据您的业务逻辑将创建的事件添加到 Feed
或多个 Feed
。
ActivityCreated
Marufsharia\ActivityStreams\Models\Activity\ActivityCreated
ActivityDeleted
Marufsharia\ActivityStreams\Models\Activity\ActivityDeleted
FeedCreated
Marufsharia\ActivityStreams\Models\Activity\FeedCreated
FeedDeleted
Marufsharia\ActivityStreams\Models\Activity\FeedDeleted
配置
常见问题解答
有关活动流规范的更多信息,请参阅此处