Verb Vocabulary
Introduction
Storyfeed\Act provides common verbs as backed enum cases. Each stores an English verb, such as accept, and maps it to an Activity Streams 2.0 type, such as Accept.
Verbs are free-form strings, so you may use your own names, enum cases, or both.
Available Verbs
The 67 verbs below are grouped by Activity Streams type. Case names start with a capital letter: Act::TentativelyAccept stores tentativelyAccept.
| Activity type | Verbs |
|---|---|
Create | create, upload, draft |
Update | update, rename, amend, correct, supersede, complete, confirm, cancel, begin, end, pause, resume, extend, shorten, enable, disable |
Delete | delete, discard |
Undo | undo, restore, reinstate, revert, void, withdraw |
Add | add, attach, apply, record |
Remove | remove, retire, archive, release, detach |
Join | join, pair |
Leave | leave |
Offer | offer, send, propose, request |
Invite | invite |
Accept | accept, agree |
Reject | reject, decline |
TentativeAccept | tentativelyAccept |
TentativeReject | tentativelyReject |
View | view, open |
Read | read, download |
Listen | listen |
Announce | announce, remind |
Question | ask |
Flag | flag |
Like | like |
Dislike | dislike |
Follow | follow |
Ignore | ignore |
Block | block |
Arrive | arrive |
Travel | travel |
Move | move |
All verbs use present tense, such as send. The enum covers all 28 Activity Streams activity types.
For example, Act::Accept stores accept and serializes as "type": "Accept" with "sf:verb": "accept". Activity Verbs shows how to record with an enum case.
Registering Verbs
Pass a verb-to-type map to Storyfeed::verbs(). Use Act::only() to build the map from the cases your application records:
use Storyfeed\Act;
use Storyfeed\Facades\Storyfeed;
Storyfeed::verbs(
Act::only(
Act::Create, Act::Update, Act::Accept, Act::Archive,
),
);Register only the verbs your application records. Registering all 67 cases produces a verbs.dead finding for each unused verb.
Using Application Verbs
Register custom verbs as strings or in an enum implementing FeedVerb.
Domain actions such as reply, settle, deliver, approve, and sign are application-owned verbs. Register their Activity Streams types explicitly; stored verb strings are unchanged when upgrading from the removed enum cases.
use Storyfeed\ActivityStreams\ActivityType;
use Storyfeed\Facades\Storyfeed;
Storyfeed::verbs([
'plate' => ActivityType::Create,
'reply' => ActivityType::Create,
'deliver' => ActivityType::Create,
'settle' => ActivityType::Update,
'approve' => ActivityType::Accept,
'sign' => ActivityType::Accept,
]);Combining Verb Enums
Storyfeed::verbs() merges registrations by default, so both vocabularies remain available.
use App\Enums\ShopActivity;
use Storyfeed\Act;
use Storyfeed\Facades\Storyfeed;
Storyfeed::verbs(Act::only(Act::Create, Act::Confirm));
Storyfeed::verbs(ShopActivity::class);