Panoramica
La FacadeBluesky è un wrapper sottile su BlueskyManager. BlueskyManager gestisce più agenti e il trait HasShortHand raccoglie in un unico posto le scorciatoie ai metodi più frequenti.
Architettura
BlueskyServiceProvider registra Factory::class come BlueskyManager in un singleton scoped (una istanza per richiesta).
getFacadeAccessor() della Facade risolve questo binding.
Metodi core di BlueskyManager
I metodi core definiti daBlueskyManager stesso sono i seguenti. Distinguerli dai metodi del trait HasShortHand aiuta a comprendere la struttura interna.
Autenticazione
Operazioni sull’Agent
Client HTTP
Utility
Trait HasShortHand
Il traitHasShortHand incapsula API di basso livello di AT Protocol in metodi PHP più chiari. Basta scrivere use HasShortHand; in BlueskyManager per rendere questi metodi invocabili direttamente da Bluesky::.
Il motivo per cui
HasShortHand è un trait indipendente è la facilità di test e personalizzazione. Grazie a questo trait, il codice di BlueskyManager resta semplice pur fornendo un ampio ventaglio di shortcut API.Post e feed
Engagement
Follow
Profilo e account
Media
Notifiche
Operazioni sui record AT Protocol
Feed generator e labeler
Esempi di shortcut di uso frequente
Pubblicare un post
Rispondere
Nelle risposte imposta loStrongRef del post genitore tramite Post::build(). In HasShortHand non c’è un metodo reply() dedicato: passi un oggetto Post a post().
Like e repost
Aggiornare il profilo
upsertProfile() recupera il profilo attuale e salva le modifiche apportate dentro la closure. Puoi usare i metodi dell’oggetto Profile per impostare displayName, description e altro.
Impostare self-label
ConSelfLabels puoi impostare self-label per l’intero account.
Invocare direttamente un’API arbitraria
Per i metodi non presenti inHasShortHand, usa send() o client().
Differenza tra utilizzo via Facade e utilizzo diretto
Bluesky::post() e app(Factory::class)->post() operano sulla stessa istanza di BlueskyManager.
scoped, all’interno di una singola richiesta lo stato della sessione dopo login() viene mantenuto.
Conditionable e Macroable
BlueskyManager utilizza anche i trait Conditionable e Macroable.
Conditionable: when() / unless()
Macroable: aggiungere metodi personalizzati
Conmacro() puoi aggiungere metodi a BlueskyManager dal lato applicazione. È tipico definirli nel boot() di AppServiceProvider.
Iniettare un Agent personalizzato
ConwithAgent() puoi impostare direttamente una qualsiasi implementazione di Agent.
Con l’autenticazione normale (
login() / withToken()) l’agente viene impostato automaticamente, quindi le occasioni per usare direttamente withAgent() sono principalmente in fase di test.Link di riferimento
- Confronto tra metodi di autenticazione — dettagli su App Password e OAuth
- Basic client — esempi di operazioni API dopo l’autenticazione
- Testing — metodi di test con i Fake
- Source: src/BlueskyManager.php
- Source: src/HasShortHand.php