Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Enhanced Period Laravel Package

cmixin/enhanced-period

Enhanced Period extends CarbonPeriod with a richer API for working with date and time ranges in PHP. It adds methods for checking containment and overlap, intersecting, merging, splitting, filtering, mapping, and formatting periods, making complex interval logic simpler and more expressive.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature enablement for date-range workflows: Supports scheduling, billing cycles, availability windows, reporting periods, and subscription logic where the codebase already uses Carbon\CarbonPeriod but needs Spatie\Period\Period operations such as intersection, overlap, union, or boundary checks.
  • Incremental migration: Lets teams keep Carbon-based date handling in Laravel while progressively adopting Spatie’s richer period algebra, instead of a risky rewrite.
  • Build-vs-buy / adopt-vs-replicate: The package is a thin conversion mixin with MIT licensing, low stars, and zero dependents. Release 1.2.1 (PHP 8.2 compatibility fix) confirms it is not abandoned, but it remains a single-maintainer glue package with no feature roadmap. The PM decision should still be “build a small internal adapter” rather than “adopt a dependency,” unless both libraries are already deeply embedded.
  • Upgrade-path unblocker: The 1.2.1 patch matters only if the codebase is on PHP 8.2+ and already uses this package — it removes a runtime blocker during a Laravel/PHP upgrade. It is not, by itself, a reason to adopt.
  • Roadmap hygiene: This is tactical glue, not strategic infrastructure. It should not appear on a product roadmap as a capability; it belongs in engineering’s implementation details.
  • Use-case fit: Best suited for internal tools, admin reporting, and back-office scheduling where date-range conversion is frequent. Poor fit for customer-facing, high-scale, or compliance-sensitive features that require actively maintained dependencies.

When to Consider This Package

  • Consider only when:
    • Your application already depends on both nesbot/carbon and spatie/period.
    • You repeatedly convert CarbonPeriod to Spatie\Period\Period and back across multiple modules.
    • You are on PHP 8.2+ and need the 1.2.1 compatibility fix (or are already pinned and upgrading PHP).
    • You are comfortable pinning a low-activity MIT package and monitoring it internally.
    • You want a short-term bridge while standardizing date-period logic.
  • Look elsewhere or write an internal adapter when:
    • You need active maintenance, security patching, or broad community support — a single patch release is not a maintenance guarantee.
    • You can implement the conversion in a small helper class in a few hours.
    • You need advanced period algebra directly — use spatie/period directly and keep Carbon at the boundaries.
    • Your architecture already standardizes on one date library; adding a bridge increases dependency surface without enough payoff.
    • You have strict supply-chain or vendor-risk policies. With 19 stars, zero dependents, and an infrequent release cadence, this package does not meet typical production dependency thresholds.

How to Pitch It (Stakeholders)

  • For executives: This is a tiny utility, not a platform or strategic bet. It does not create competitive advantage, and adopting it adds a low-maintenance dependency for code we could replicate internally. The recent 1.2.1 patch shows the package is still alive for PHP 8.2, but one compatibility fix does not change the risk profile. The recommended position remains: avoid formal adoption, and have engineering implement a small adapter if the need arises.
  • For engineering: The package is a Carbon mixin that converts CarbonPeriod to Spatie\Period\Period and vice versa. Release 1.2.1 only fixes PHP 8.2 compatibility — no new features, no breaking changes, no API surface added. The conversion logic is still simple, the repository remains low-activity, and there are no known dependents. Prefer vendoring the relevant snippet or writing a tested internal helper. If you are already using the package, 1.2.1 is a safe patch to take for PHP 8.2+; pin the version, document ownership, and keep a removal path.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums