Skip to main content

Panoramica

La Facade Bluesky è 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).
Il getFacadeAccessor() della Facade risolve questo binding.

Metodi core di BlueskyManager

I metodi core definiti da BlueskyManager 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 trait HasShortHand 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 lo StrongRef 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

Con SelfLabels puoi impostare self-label per l’intero account.

Invocare direttamente un’API arbitraria

Per i metodi non presenti in HasShortHand, 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.
Grazie alla registrazione 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

Con macro() puoi aggiungere metodi a BlueskyManager dal lato applicazione. È tipico definirli nel boot() di AppServiceProvider.

Iniettare un Agent personalizzato

Con withAgent() 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.
Ultima modifica il 13 luglio 2026