Overzicht
DeBluesky 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).
getFacadeAccessor() van de Facade lost deze binding op.
Kernmethodes van BlueskyManager
Dit zijn de kernmethodes dieBlueskyManager 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
DeHasShortHand-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 metPost::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
MetSelfLabels kun je zelflabels instellen voor het hele account.
Een willekeurige API direct aanroepen
Voor methodes die niet inHasShortHand 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.
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
Metmacro() kun je vanuit je applicatie methodes toevoegen aan BlueskyManager. Meestal definieer je deze in de boot() van je AppServiceProvider.
Een custom Agent inpluggen
MetwithAgent() 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
- Vergelijking van authenticatiemethodes — details over App Password en OAuth
- Basic client — API-voorbeelden na authenticatie
- Testen — testen met Fakes
- Source: src/BlueskyManager.php
- Source: src/HasShortHand.php