Vue d’ensemble
La facadeBluesky est une fine enveloppe autour de BlueskyManager. BlueskyManager gère plusieurs agents, et le trait HasShortHand regroupe les méthodes raccourci les plus fréquemment utilisées.
Architecture
LeBlueskyServiceProvider enregistre Factory::class en tant que singleton à portée limitée (une instance par requête) vers BlueskyManager.
getFacadeAccessor() de la facade résout ce binding.
Méthodes principales de BlueskyManager
Voici les méthodes principales définies parBlueskyManager lui-même. Les distinguer de celles du trait HasShortHand aide à comprendre la structure interne.
Authentification
Opérations sur l’Agent
Client HTTP
Utilitaires
Trait HasShortHand
Le traitHasShortHand enveloppe les API bas niveau d’AT Protocol dans des méthodes PHP plus lisibles. Il suffit d’ajouter use HasShortHand; dans BlueskyManager pour exposer ces méthodes directement via Bluesky::.
HasShortHand est isolé dans un trait pour faciliter les tests et la personnalisation. Ce trait permet de fournir un large éventail de raccourcis d’API tout en gardant le code de BlueskyManager simple.Posts et flux
Engagement
Follow
Profil et compte
Médias
Notifications
Opérations sur les enregistrements AT Protocol
Feed generator et labeler
Exemples de raccourcis courants
Publier
Répondre
Pour une réponse, définissez laStrongRef du post parent via Post::build(). HasShortHand ne dispose pas de méthode reply() dédiée : on passe l’objet Post à post().
Like et repost
Mettre à jour son profil
upsertProfile() récupère le profil actuel et enregistre les modifications effectuées dans la closure. Les méthodes de l’objet Profile permettent de définir displayName, description, etc.
Définir des self labels
Vous pouvez utiliserSelfLabels pour appliquer un self label à l’ensemble du compte.
Appeler directement une API arbitraire
Pour toute méthode absente deHasShortHand, utilisez send() ou client().
Différences entre l’utilisation via la facade et l’utilisation directe
Bluesky::post() et app(Factory::class)->post() opèrent sur la même instance de BlueskyManager.
scoped, l’état de session obtenu après login() est conservé pendant toute la requête.
Conditionable et Macroable
BlueskyManager utilise également les traits Conditionable et Macroable.
Conditionable : when() / unless()
Macroable : ajouter des méthodes personnalisées
macro() permet à l’application d’ajouter des méthodes à BlueskyManager. On les définit typiquement dans la méthode boot() d’AppServiceProvider.
Injecter un Agent personnalisé
withAgent() permet d’installer directement une implémentation d’Agent de votre choix.
Comme l’authentification normale (
login() / withToken()) installe automatiquement l’agent, l’usage direct de withAgent() intervient surtout lors des tests.Liens utiles
- Comparaison des méthodes d’authentification — Détails App Password vs OAuth
- Client de base — Exemples d’appels d’API après authentification
- Tests — Méthodes de test avec Fake
- Source : src/BlueskyManager.php
- Source : src/HasShortHand.php