Click to expand
Install with composer
composer require musonza/laravel-activity-streamsOnce the composer installation is finished, you can add alias for the facade. Open config/app.php, and make the following update:
-
Add a new item to the
aliasesarray:'ActivityStreams' => Musonza\ActivityStreams\ActivityStreamsFacade::class,
-
Publish the configuration file into your app's
configdirectory, by running the following command:php artisan vendor:publish --tag="activity.streams.config" -
Publish the migrations into your app's
migrationsdirectory, by running the following command:php artisan vendor:publish --tag="activity.streams.migrations" -
Run the migrations:
php artisan migrate
Whenever you use the ActivityStreams facade in your code, remember to add the following line to your namespace imports:
use ActivityStreams;Use the HasFeed trait to allow a model to have a feed.
<?php use Illuminate\Database\Eloquent\Model; use Musonza\ActivityStreams\Traits\HasFeed; class User extends Model { use HasFeed; }After adding the HasFeed trait you can create a feed for the Model as follows
$feed = $user->createFeed();An example of an activity will be something like John liked a photo in 2018Album
| Actor | John |
| Verb | like |
| Object | photo |
| Target | 2018Album |
use ActivityStreams; use Musonza\ActivityStreams\ValueObjects\Verbs; $activity = ActivityStreams::setActor($actor) ->setVerb(Verbs::VERB_LIKE) ->setObject($object) ->setTarget($target) ->createActivity();You can pass in an Eloquent Model as an actor or any Object that implements Musonza\ActivityStreams\Contracts\ActivityActor interface
$verbs = ActivityStreams::verbs();ActivityStreams::addActivityToFeed($feed, $activity);See more on Activity Streams specifications here