Všetky balíky
Campaigns for Laravel
Hodnotové objekty
Fasáda, manažér aj každé úložisko pracujú s tromi obyčajnými PHP hodnotovými objektmi — bez Eloquent modelu, nech používate akékoľvek úložisko:
use RoundlyConsulting\Campaigns\Campaign;
use RoundlyConsulting\Campaigns\CampaignProgress;
use RoundlyConsulting\Campaigns\CampaignRecipient;
use RoundlyConsulting\Campaigns\Enums\CampaignStatus;
new Campaign(
uuid: 'e184d08f-5081-4fbb-9604-7a2460c3fb3a',
subject: 'Our spring collection is here',
content: '<p>Hello, the spring collection just landed.</p>',
fromName: 'Example Shop',
fromAddress: '[email protected]',
progress: new CampaignProgress, // optional — Created, every counter 0
startedAt: null, // optional ?Carbon
endedAt: null, // optional ?Carbon
batch: null, // optional Laravel batch id, set by prepare()
);
new CampaignRecipient(
uuid: '7f3eb754-709e-4837-b82a-49c83223eed6',
name: 'Ana Horvat',
reachableAt: '[email protected]', // an email address, phone number or any route
hasBeenProcessed: false, // optional
errorOccured: false, // optional
errorMessage: null, // optional
campaignUuid: null, // optional — set when the recipient is added to a campaign
);
new CampaignProgress(status: CampaignStatus::Created, sent: 0, pending: 0, total: 0, failed: 0);- Campaign — uuid, subject, content, fromName, fromAddress, progress, startedAt, endedAt a batch (id dávky Laravelu).
- CampaignRecipient — uuid, name, reachableAt, hasBeenProcessed, errorOccured, errorMessage (null, ak chyba nenastala) a campaignUuid (nastaví sa po pridaní do kampane), plus belongsTo($campaignUuid).
- CampaignProgress — status, sent (doručené), failed, pending (zatiaľ bez výsledku) a total, plus percentage() (podiel doručených, 0–100), remaining(), isRunning() a isComplete().
Príznak sa v celom balíku píše errorOccured (stĺpec error_occured) — používajte presne tento názov.
Podoba poľa
toArray() vracia polia pripravené na JSON — dátumy ako reťazce ISO 8601, stav ako jeho hodnotu, vrátane remaining a percentage:
$campaign->toArray();
// [
// 'uuid' => 'e184d08f-5081-4fbb-9604-7a2460c3fb3a',
// 'subject' => 'Our spring collection is here',
// 'content' => '<p>Hello, the spring collection just landed.</p>',
// 'fromName' => 'Example Shop',
// 'fromAddress' => '[email protected]',
// 'progress' => [
// 'status' => 'Completed',
// 'sent' => 2,
// 'failed' => 0,
// 'pending' => 0,
// 'total' => 2,
// 'remaining' => 0,
// 'percentage' => 100.0,
// ],
// 'startedAt' => '2026-03-02T09:00:00+00:00',
// 'endedAt' => '2026-03-02T09:00:04+00:00',
// 'batch' => '9d3c6a1e-…',
// ]
$recipient->toArray();
// [
// 'uuid' => '7f3eb754-709e-4837-b82a-49c83223eed6',
// 'name' => 'Ana Horvat',
// 'reachableAt' => '[email protected]',
// 'hasBeenProcessed' => true,
// 'errorOccured' => false,
// 'errorMessage' => null,
// 'campaignUuid' => 'e184d08f-5081-4fbb-9604-7a2460c3fb3a',
// ]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.