From 466c45de747c4d0778f28d563d4e36719026c52c Mon Sep 17 00:00:00 2001 From: edalzell Date: Thu, 6 Nov 2025 15:40:00 -0800 Subject: [PATCH] heck w/ mutability --- src/Modifiers/InMonth.php | 8 ++++---- src/Modifiers/IsEndOfWeek.php | 3 +-- src/Modifiers/IsStartOfWeek.php | 3 +-- src/ServiceProvider.php | 10 +++++----- src/Tags/Events.php | 11 ++++++----- src/Types/Event.php | 5 ++--- src/Types/RecurringEvent.php | 6 +++--- src/helpers.php | 4 ++-- 8 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/Modifiers/InMonth.php b/src/Modifiers/InMonth.php index 5ca7221..c07c294 100755 --- a/src/Modifiers/InMonth.php +++ b/src/Modifiers/InMonth.php @@ -2,7 +2,7 @@ namespace TransformStudios\Events\Modifiers; -use Illuminate\Support\Carbon; +use Carbon\CarbonImmutable; use Statamic\Modifiers\Modifier; use Statamic\Support\Arr; @@ -11,11 +11,11 @@ class InMonth extends Modifier public function index($value, $params, $context) { $month = parse_date( - Arr::get($context, 'get.month', Carbon::now()->englishMonth). + Arr::get($context, 'get.month', CarbonImmutable::now()->englishMonth). ' '. - Arr::get($context, 'get.year', Carbon::now()->year) + Arr::get($context, 'get.year', CarbonImmutable::now()->year) )->month; - return Carbon::parse($value)->month == $month; + return CarbonImmutable::parse($value)->month == $month; } } diff --git a/src/Modifiers/IsEndOfWeek.php b/src/Modifiers/IsEndOfWeek.php index d84e4ea..72b0802 100755 --- a/src/Modifiers/IsEndOfWeek.php +++ b/src/Modifiers/IsEndOfWeek.php @@ -4,7 +4,6 @@ use Carbon\CarbonImmutable; use Composer\InstalledVersions; -use Illuminate\Support\Carbon; use Statamic\Modifiers\Modifier; class IsEndOfWeek extends Modifier @@ -14,7 +13,7 @@ public function index($value, $params, $context) $date = CarbonImmutable::parse($value); if (InstalledVersions::getVersion('nesbot/carbon') >= '3') { - $date->isSameDay($date->locale(Carbon::getLocale())->startOfWeek()); + $date->isSameDay($date->locale(CarbonImmutable::getLocale())->startOfWeek()); } return $date->dayOfWeek == now()->endOfWeek()->dayOfWeek; diff --git a/src/Modifiers/IsStartOfWeek.php b/src/Modifiers/IsStartOfWeek.php index 5f32daa..0087fc4 100755 --- a/src/Modifiers/IsStartOfWeek.php +++ b/src/Modifiers/IsStartOfWeek.php @@ -4,7 +4,6 @@ use Carbon\CarbonImmutable; use Composer\InstalledVersions; -use Illuminate\Support\Carbon; use Statamic\Modifiers\Modifier; class IsStartOfWeek extends Modifier @@ -14,7 +13,7 @@ public function index($value, $params, $context) $date = CarbonImmutable::parse($value); if (InstalledVersions::getVersion('nesbot/carbon') >= '3') { - $date->isSameDay($date->locale(Carbon::getLocale())->startOfWeek()); + $date->isSameDay($date->locale(CarbonImmutable::getLocale())->startOfWeek()); } return $date->dayOfWeek == now()->startOfWeek()->dayOfWeek; diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index ed5fc6a..94510d6 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -2,8 +2,8 @@ namespace TransformStudios\Events; +use Carbon\CarbonImmutable; use Composer\InstalledVersions; -use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Artisan; use Statamic\Entries\Entry; use Statamic\Facades\Collection; @@ -30,7 +30,7 @@ public function bootAddon() private function bootCarbon(): self { - Carbon::setLocale(Site::current()->locale()); + CarbonImmutable::setLocale(Site::current()->locale()); if (InstalledVersions::getVersion('nesbot/carbon') >= '3') { return $this; @@ -44,12 +44,12 @@ private function bootCarbon(): self */ - if (is_string($weekStartDay = Carbon::getTranslator()->trans(id: 'first_day_of_week', locale: Site::current()->locale()))) { + if (is_string($weekStartDay = CarbonImmutable::getTranslator()->trans(id: 'first_day_of_week', locale: Site::current()->locale()))) { $weekStartDay = 0; } - Carbon::setWeekStartsAt(day: $weekStartDay); - Carbon::setWeekEndsAt(day: ($weekStartDay + 6) % 7); + CarbonImmutable::setWeekStartsAt(day: $weekStartDay); + CarbonImmutable::setWeekEndsAt(day: ($weekStartDay + 6) % 7); return $this; } diff --git a/src/Tags/Events.php b/src/Tags/Events.php index ec42d76..277c407 100755 --- a/src/Tags/Events.php +++ b/src/Tags/Events.php @@ -2,9 +2,10 @@ namespace TransformStudios\Events\Tags; +use Carbon\Carbon; +use Carbon\CarbonImmutable; use Carbon\CarbonInterface; use Illuminate\Pagination\Paginator; -use Illuminate\Support\Carbon; use Illuminate\Support\Collection; use Statamic\Contracts\Query\Builder; use Statamic\Contracts\Taxonomies\Term; @@ -24,8 +25,8 @@ class Events extends Tags public function between(): EntryCollection|array { return $this->output($this->generator()->between( - from: Carbon::parse($this->params->get('from', now()))->startOfDay(), - to: Carbon::parse($this->params->get('to'))->endOfDay() + from: CarbonImmutable::parse($this->params->get('from', now()))->startOfDay(), + to: CarbonImmutable::parse($this->params->get('to'))->endOfDay() )); } @@ -52,7 +53,7 @@ public function downloadLink(): string 'statamic.events.ics.show', Arr::removeNullValues([ 'collection' => $this->params->get('collection', 'events'), - 'date' => $this->params->has('date') ? Carbon::parse($this->params->get('date'))->toDateString() : null, + 'date' => $this->params->has('date') ? CarbonImmutable::parse($this->params->get('date'))->toDateString() : null, 'event' => $this->params->get('event'), ]) ); @@ -165,7 +166,7 @@ private function makeEmptyDates(CarbonInterface $from, CarbonInterface $to): Col $dates = collect(); $currentDay = $from->copy()->toMutable(); - foreach (range(0, Carbon::parse($to)->diffInDays($from)) as $ignore) { + foreach (range(0, CarbonImmutable::parse($to)->diffInDays($from)) as $ignore) { $date = $currentDay->toDateString(); $dates->put($date, [ 'date' => $date, diff --git a/src/Types/Event.php b/src/Types/Event.php index 4cdabf7..c69c449 100644 --- a/src/Types/Event.php +++ b/src/Types/Event.php @@ -2,7 +2,6 @@ namespace TransformStudios\Events\Types; -use Carbon\Carbon; use Carbon\CarbonImmutable; use Carbon\CarbonInterface; use DateTimeInterface; @@ -167,9 +166,9 @@ protected function supplement(CarbonInterface $date): ?Entry protected function toCarbonImmutable(string|CarbonInterface $date): CarbonImmutable { - $carbon = is_string($date) ? Carbon::parse($date) : $date; + $carbon = is_string($date) ? CarbonImmutable::parse($date) : $date; - return $carbon->shiftTimezone($this->timezone['name'])->toImmutable(); + return $carbon->shiftTimezone($this->timezone['name']); } private function collect(array $dates): Collection diff --git a/src/Types/RecurringEvent.php b/src/Types/RecurringEvent.php index 677fa9e..bc78e74 100644 --- a/src/Types/RecurringEvent.php +++ b/src/Types/RecurringEvent.php @@ -2,8 +2,8 @@ namespace TransformStudios\Events\Types; +use Carbon\CarbonImmutable; use Illuminate\Support\Arr; -use Illuminate\Support\Carbon; use RRule\RRule; use RRule\RRuleInterface; use Spatie\IcalendarGenerator\Components\Event as ICalendarEvent; @@ -57,7 +57,7 @@ protected function rule(): RRuleInterface ]; if ($end = $this->end_date) { - $rule['until'] = Carbon::parse($end)->shiftTimezone($this->timezone['name'])->endOfDay(); + $rule['until'] = CarbonImmutable::parse($end)->shiftTimezone($this->timezone['name'])->endOfDay(); } if (! empty($days = $this->onSpecificDays())) { @@ -107,7 +107,7 @@ private function spatieRule(): ICalendarRule ->interval($this->interval()); if ($end = $this->end_date) { - $rule->until(Carbon::parse($end)->endOfDay()); + $rule->until(CarbonImmutable::parse($end)->endOfDay()); } return $rule; diff --git a/src/helpers.php b/src/helpers.php index 06f8ef9..ba56454 100644 --- a/src/helpers.php +++ b/src/helpers.php @@ -1,8 +1,8 @@