musonza/laravel-activity-streams

Laravel 包,帮助您在应用程序中处理feed和活动流

v0.2.0 2020-06-14 14:19 UTC

This package is auto-updated.

Last update: 2024-09-14 23:59:14 UTC


README

Build Status

Laravel Activity Streams

目录

点击展开

简介

此包使您能够在Laravel应用程序中拥有活动流。

安装

使用composer安装

composer require musonza/laravel-activity-streams

完成composer安装后,您可以为门面添加别名。打开config/app.php,并执行以下更新

  1. aliases数组中添加一个新项目

    'ActivityStreams' => Musonza\ActivityStreams\ActivityStreamsFacade::class,
  2. 通过运行以下命令将配置文件发布到您的应用的config目录

    php artisan vendor:publish --tag="activity.streams.config"
    
  3. 通过运行以下命令将迁移发布到您的应用的migrations目录

    php artisan vendor:publish --tag="activity.streams.migrations"
    
  4. 运行迁移

    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

配置

常见问题解答

有关活动流规范的更多信息,请参阅这里