NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
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 kryptomien

Odoslaní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.