Všetky balíky
Opening Hours for Laravel
Import týždenných polí
Rozšírený formát polí s kľúčmi podľa dní v týždni balík číta natívne, takže prechod zo staršieho riešenia je import dát, nie prepis:
use RoundlyConsulting\OpeningHours\DataTransferObjects\CalendarData;
use RoundlyConsulting\OpeningHours\Facades\OpeningHours;
use RoundlyConsulting\OpeningHours\Validation\ParseOptions;
$data = CalendarData::fromWeekArray([
'monday' => ['09:00-12:00', ['hours' => '13:00-18:00', 'data' => 'Afternoon']],
'exceptions' => [
'2026-12-24' => [],
'12-25' => ['data' => 'Christmas'],
'2026-12-27 to 2026-12-30' => ['10:00-12:00'],
],
], new ParseOptions(mergeOverlapping: true));
OpeningHours::sync($clinic, $data); // or $clinic->setOpeningHours($data)- data na rozsahu alebo dni sa zachová — reťazec sa stane popisom, pole sa uloží ako meta.
- Kľúče výnimiek: Y-m-d (jednorazová), m-d (každoročná) a obdobia Y-m-d to Y-m-d alebo m-d to m-d; [] alebo záznam bez hours znamená zatvorené.
- overflow sa ignoruje — nočné rozsahy vždy pokračujú cez polnoc.
- Pri mergeOverlapping zostane rozsah, ktorý sa s ničím neprekrýva, presne taký, aký je; zlúčený rozsah si ponechá popis, kapacitu či položku meta, len ak sa na nich zhodujú všetky pohltené rozsahy.
- filters sa odmietne (unsupported_week_array_feature) — namiesto neho použite DynamicExceptionProvider.
Validácia pred importom
WeekArrayParser namiesto vyhodenia výnimky vráti ParseResult, takže jeden chybný záznam nezastaví hromadný import; cesty porušení používajú pôvodné kľúče:
use RoundlyConsulting\OpeningHours\Validation\WeekArrayParser;
$result = WeekArrayParser::parse($weekArray); // ParseResult — never throws
$result->isValid();
$result->violations; // paths use the legacy keys: mon.0, exceptions.2026-12-24.0
$result->dataOrFail(); // CalendarDataPrejavte 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.