Preskočiť na obsah

Príklady ​

Kompletné recepty, ktoré môžete skopírovať do prázdneho priečinka a spustiť. Každý má cieľ, diagram, všetky súbory, príkazy na spustenie a kontrolu a úskalia, na ktorých pri danej úlohe záleží.

Začnite návodom. Vysvetľuje každý krok a ostatné recepty stavajú na jeho nastavení.

ReceptDriverUkazuje
Uvítací e-mail od nulyPredisNávod: inštalácia, vloženie, handler, worker, Mailpit, opakovanie, testy, Supervisor
Faktúra v PDFPredisIdempotentný handler, ktorý zapisuje súbory
Webhooky s opakovanímPredisPodpísané požiadavky, ktoré zlyhania opakovať, oneskorenie
Import CSV po častiachPredisRozdelenie veľkej úlohy na bezpečné paralelné časti
Náhľady obrázkovRabbitMQČo sa mení na brokeri bez oneskorenia a potvrdzovania
Odložená pripomienkaPredisexecuteAt a kontrola stavu v čase spustenia správy
Prioritné frontyPredisPoradie priorít a worker len pre urgentnú prácu

Každý recept vyžaduje tomaj/hermes:dev-master, pripravovanú verziu 6.0, a PHP 8.4 alebo novšie. Kód bol spustený proti Redisu 8, RabbitMQ 4 a Mailpitu.

Každý recept je spustiteľný projekt v examples/ s Makefile a e2e.sh, ktorý overí celý postup. Kód na týchto stránkach sa pri zostavení načítava z týchto súborov, takže je to presne ten kód, ktorý kontroly spúšťajú. CI spúšťa každé e2e.sh aj integrácie do frameworkov proti kódu každého pull requestu.

Časté otázky ​

Sú príklady testované? ​

Áno. Workflow Examples spúšťa e2e.sh každého receptu (vrátane filesystem a emit-after-commit, ktoré nepotrebujú služby, a kafka) s Redisom, RabbitMQ, Kafkou a Mailpitom podľa potreby a integrácie do frameworkov v čistých projektoch Laravel, Symfony a Nette s Redisom, Predisom, RabbitMQ a SQS. Hermes inštaluje z pull requestu cez Composer path repository, takže zmena, ktorá recept pokazí, pull request zlyhá. examples/README.md ukazuje, ako spustiť tie isté skripty lokálne.

Používajú príklady vydaný balík? ​

Zatiaľ nie. Kým Hermes 6.0 nemá tag, každý vyžaduje tomaj/hermes:dev-master z Packagistu s "minimum-stability": "dev" a "prefer-stable": true, takže z vetvy pochádza len samotný Hermes. Po vydaní bude obmedzenie ^6.0. Ak ste recept s náhľadmi spúšťali na 5.x, najprv zmažte jeho frontu thumbnails: 6.0 ju deklaruje ako durable a RabbitMQ zmenenú deklaráciu odmietne.

Akú verziu PHP príklady potrebujú? ​

PHP 8.4 alebo novšie, rovnako ako Hermes 6.0.

Potrebujem Docker? ​

Len pre Redis, Mailpit a RabbitMQ. Funguje aj akýkoľvek lokálny Redis alebo RabbitMQ na predvolených portoch.

Prečo väčšina príkladov používa Predis? ​

Nepotrebuje PHP rozšírenie. Vo verzii 5.x to bol aj jediný klient Redisu, ktorý presúval odložené správy a opakovania; od 6.0 to robí aj ext-redis. Pozrite Odložené spracovanie.

Kde je spustiteľný kód? ​

V examples/ v repozitári, s Makefile a e2e.sh pre každý projekt.

Vydané pod licenciou MIT.