Skip to main content

Overzicht

De Bluesky Facade is een dunne wrapper rond BlueskyManager. BlueskyManager beheert meerdere Agents, en de HasShortHand-trait biedt een verzameling shortcuts voor veelgebruikte methodes.

Architectuur

BlueskyServiceProvider registreert Factory::class als BlueskyManager via een scoped singleton (één instantie per request).
De getFacadeAccessor() van de Facade lost deze binding op.

Kernmethodes van BlueskyManager

Dit zijn de kernmethodes die BlueskyManager zelf definieert. Het helpt bij het begrijpen van de interne structuur om deze te onderscheiden van de methodes uit de HasShortHand-trait.

Authenticatie

Agent-operaties

HTTP-client

Utilities

De HasShortHand-trait

De HasShortHand-trait verpakt de low-level API’s van het AT Protocol in duidelijke, PHP-vriendelijke methodes. Door simpelweg use HasShortHand; toe te voegen aan BlueskyManager kun je deze methodes direct via Bluesky:: aanroepen.
De reden dat HasShortHand een aparte trait is, is dat dit het testen en aanpassen makkelijker maakt. Met deze trait blijft de code van BlueskyManager eenvoudig, terwijl er toch een rijke set API-shortcuts beschikbaar is.

Posts en feeds

Interacties

Volgen

Profiel en account

Media

Notificaties

AT Protocol record-operaties

Feedgenerators en labelers

Voorbeelden van veelgebruikte shortcuts

Posten

Reageren

Voor een reply stel je met Post::build() de StrongRef van de bovenliggende post in. HasShortHand heeft geen aparte reply()-methode; je geeft een Post-object door aan post().

Liken en reposten

Profiel bijwerken

upsertProfile() haalt het huidige profiel op en slaat de wijzigingen op die je in de closure maakt. Met de methodes van het Profile-object kun je onder andere displayName en description instellen.

Zelflabels instellen

Met SelfLabels kun je zelflabels instellen voor het hele account.

Een willekeurige API direct aanroepen

Voor methodes die niet in HasShortHand zitten, gebruik je send() of client().

Verschil tussen de Facade en direct gebruik

Bluesky::post() en app(Factory::class)->post() werken op dezelfde BlueskyManager-instantie.
Door de scoped-registratie blijft de sessiestatus na login() behouden binnen één request.

Conditionable en Macroable

BlueskyManager gebruikt ook de traits Conditionable en Macroable.

Conditionable: when() / unless()

Macroable: eigen methodes toevoegen

Met macro() kun je vanuit je applicatie methodes toevoegen aan BlueskyManager. Meestal definieer je deze in de boot() van je AppServiceProvider.

Een custom Agent inpluggen

Met withAgent() kun je een willekeurige Agent-implementatie direct instellen.
Bij de normale authenticatie (login() / withToken()) wordt de agent automatisch ingesteld, dus withAgent() gebruik je in de praktijk vooral bij testen.

Referenties

Laatst gewijzigd op 6 september 2026