Fasáda Campaigns
Fasáda Campaigns nad RoundlyConsulting\Campaigns\CampaignManager je verejné API balíka a odporúčaný spôsob použitia. Vytvára a odosiela kampane, vyhľadáva ich a pre jednu kampaň vám dá handle obmedzený len na ňu:
use RoundlyConsulting\Campaigns\Facades\Campaigns;
$campaign = Campaigns::create('Spring sale', '<p>50% off</p>')->to($subscribers)->prepare();
Campaigns::start($campaign->uuid); // only a prepared (Pending) campaign starts
Campaigns::find($campaign->uuid); // ?Campaign — live progress while it sends
Campaigns::findOrFail($uuid); // Campaign, or CampaignNotFound
Campaigns::all(offset: 0, limit: 25); // Collection<int, Campaign>, in creation order
Campaigns::cancel($uuid); // Campaign — one that already ended is left as it is
Campaigns::campaign($uuid)->progress()->percentage(); // one campaign, through its handle
Campaigns::settings()->fromAddress(); // the effective send defaultsVšetky metódy
| Metóda | Vracia | Účel |
|---|---|---|
create(string $subject, string $content) | PendingCampaign | Fluent builder — from, to, onlyVerified, viaContactType, uuid, subject, content, prepare, dispatch. |
prepare(Campaign $campaign, iterable $recipients = []) | Campaign | Uloží kampaň zostavenú z hodnotového objektu aj s príjemcami a ponechá ju v stave Pending. Pri obsadenom uuid vyhodí CampaignAlreadyExists. |
start(Campaign|string $campaign) | Campaign | Spustí odosielanie kampane v stave Pending; v inom stave vyhodí InvalidCampaignTransition. |
cancel(Campaign|string $campaign) | Campaign | Zruší kampaň aj jej dávku; už skončenú kampaň vráti bez zmeny. |
find(string $uuid) | ?Campaign | Vyhľadá kampaň, počas odosielania so živým priebehom; null, ak neexistuje. |
findOrFail(string $uuid) | Campaign | Vyhľadá kampaň alebo vyhodí CampaignNotFound. |
all(int $offset = 0, int $limit = 10) | Collection<int, Campaign> | Stránka kampaní v poradí vytvorenia. |
campaign(Campaign|string $campaign) | CampaignHandle | Jedna kampaň — pozrite handle nižšie. |
settings() | CampaignSettings | Platné predvolené nastavenia odosielania: fromName(), fromAddress(), notificationChannel(), sendingQueue(), onlyVerifiedRecipients(), defaultRecipientContactType(). |
fake() | CampaignsFake | Nahradí manažéra zaznamenávajúcim fake — pozrite Testovanie. |
Jedna kampaň: handle
Campaigns::campaign() prijme Campaign alebo uuid a vráti CampaignHandle obmedzený na túto kampaň — pri neznámom uuid vyhodí CampaignNotFound:
use RoundlyConsulting\Campaigns\Facades\Campaigns;
$campaign = Campaigns::campaign($uuid); // throws CampaignNotFound for an unknown uuid
$campaign->progress()->percentage(); // share delivered so far: 42.5
$campaign->progress()->failed; // deliveries that failed
$campaign->progress()->remaining(); // recipients with no outcome yet
$campaign->recipients(); // Collection<CampaignRecipient>, in the order added
$campaign->recipients(offset: 100, limit: 50);
$campaign->recipient($recipientUuid); // one recipient of THIS campaign
$campaign->batch(); // the Illuminate\Bus\Batch, or null
$campaign->start();
$campaign->cancel(); // a campaign that already ended is left as it is| Metóda | Vracia | Účel |
|---|---|---|
uuid() | string | uuid kampane. |
get() | Campaign | Kampaň tak, ako je teraz uložená, so živým priebehom. |
progress() | CampaignProgress | Živý priebeh — v stave Pending alebo Processing sa číta z príjemcov a z dávky. |
recipients(int $offset = 0, ?int $limit = null) | Collection<int, CampaignRecipient> | Príjemcovia v poradí pridania; limit null vráti všetkých. |
recipient(CampaignRecipient|string $recipient) | CampaignRecipient | Jeden príjemca tejto kampane; inak RecipientNotFound. |
batch() | ?Batch | Dávka jobov Laravelu — null pred prepare() a pod fake. |
start() | Campaign | To isté ako Campaigns::start(). |
cancel() | Campaign | To isté ako Campaigns::cancel(). |
markProcessed(CampaignRecipient $recipient) | CampaignRecipient | Zaznamená doručenie a spustí RecipientProcessed. |
markFailed(CampaignRecipient $recipient, string $error) | CampaignRecipient | Zaznamená zlyhanie so správou a spustí RecipientFailed. |
Handle odmieta príjemcov iných kampaní: recipient(), markProcessed() aj markFailed() vtedy vyhodia RecipientNotFound. markProcessed() a markFailed() volajú joby doručenia — pozrite si časť Vlastné joby doručenia.
Chcete rovnaké API bez statických volaní? Pozrite si časť DI a akcie.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.