Een plug-in systeem bouwen in PHP voor API-clients

Status
Niet open voor verdere reacties.

Aar

Inventaris
Lid geworden
3 aug 2014
Berichten
10.155
Besturingssysteem
Windows 11 en diverse Linux-soorten
Office versie
Office 365
Momenteel ben ik bezig om met CMS te voorzien van de mogelijkheid om vanuit een wachtrij in de database om berichten via API's naar sociaal media te sturen.

Denk bijvoorbeeld aan Facebook, Twitter/X, BlueSky en Mastodon.

Nu kan je met dank aan GitHub en Packagist diverse API-clients voor Composer binnenhalen, maar nu ben ik benieuwd of er een bepaald systeem bestaat waarmee je dergelijke cliënts als een soort plugin kan installeren, zodat mijn verzend-cronjob niet teveel onderhoud nodig heeft, en dat je met minimale wijzigingen een nieuwe cliënt kan toevoegen. Uiteraard ben ik mij bewust van de autoloader van Composer, maar misschien kan het implementeren (of uitschakelen bij storing) van API-clients hiernaast makkelijker.

En ook vroeg ik me af hoe ik ervoor kan zorgen dat zodra een API-cliënt faalt dat de rest gewoon uitgevoerd wordt.

Iemand die wat tips heeft? Bestaat er misschien een techniek die ik hierbij goed kan gebruiken?
 
Klinkt alsof je iets van Message Queues zoekt, zoals RabbitMQ.

Ik weet niet wat voor CMS of welk framework je gebruikt, maar ik denk dat je met iets zoals het Symfony Messenger Component aardig jouw wensen kunt realiseren.
 
Ik heb mijn eigen framework gebouwd. Misschien dat ik ooit nog eens naar Symfony o.i.d over ga.

Maar het gaat mij er om dat ik een makkelijke manier heb om verschillende providers toe te voegen. Die queue is het probleem verder niet meer

Ik kan natuurlijk alle aanroepen naar de API's onder elkaar plaatsen. Maar is er geen mooie OOP techniek of pattern voor?
 
Waarschijnlijk ben je dan op zoek naar een Event Driven Architecture.

Kun je anders eens met psuedo code duidelijker maken hoe het zou moeten werken
 
Ik wil natuurlijk alle API-clients via Composer inladen en ik zou ze nu achter elkaar kunnen aanroepen in mijn script, maar toch was ik benieuwd of er iets bestaat om nieuwe API's makkelijk in een handomdraai toe te voegen of uit te schakelen (als ze stuk zijn ofzo). Misschien is met een Autoloader achtig iets?

Het punt is dat er een queue is waarin alle berichten staan die naar de juiste providers moeten worden gestuurd (Facebook, X, BlueSky, mastodon etc).

Misschien een bepaald pattern ofzo die ik nog niet ken? Of een deftige OO oplossing?
Heb jij enig idee @Tha Devil?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan