mohamedsabil83/laravel-hijrian
mohamedsabil83/laravel-hijrian brings Hijri calendar support to Laravel. Convert Gregorian dates to Hijri and back, format and localize Islamic dates, and use convenient helpers to display Hijri dates throughout your Laravel applications.
Architecture fit. mohamedsabil83/laravel-hijrian is a small, single-purpose calendar-conversion utility: it converts Gregorian↔Hijri dates and exposes the result through Laravel idioms (Blade directive, validation rule, locale strings, facade). It is a presentation/formatting concern that sits on top of Laravel's date and i18n surface — it does not replace Carbon and does not become a system of record. Architectural footprint is therefore minimal: one service provider, one config file, one facade alias. That is a good fit for a TPM to greenlight because the blast radius of adoption is small and the exit cost is low.
Release verdict (v4.3.0). This is a maintenance release, not a feature release. The only user-facing change is widened framework support (Laravel 12 & 13). Everything else is Dependabot noise: orchestra/testbench (dev-only) plus GitHub Actions bumps (actions/checkout, ramsey/composer-install, dependabot/fetch-metadata, laravel-pint-action, git-auto-commit-action). No new features, no deprecations announced, no explicit breaking-change section. Treat it as "unblocks the Laravel 12 upgrade," not as "new capability to plan around."
Technical risk. Low-to-moderate.
illuminate/support constraint in composer.json before relying on it in a roadmap.testbench major bump to ^9.5.2 implies the suite tracks the current framework, but the release notes tell us nothing about coverage of the conversion logic itself.Key questions.
illuminate/support and PHP version constraint in composer.json — can it coexist with our current Laravel version during the transition window?Stack fit. Targets Laravel 10/11/12 (13 claimed) applications with Arabic-locale or GCC/KSA market requirements: invoice and statement rendering, HR/payroll documents, contracts, and any regulatory output that must show Hijri alongside Gregorian. Fits wherever a Blade template or Eloquent accessor formats a date.
Migration path. Add as ^4.3.0. The 4.2.0→4.3.0 delta is additive (framework constraints widened, dev dependencies advanced), so there is no code-migration work expected on our side. If we are mid-flight on a Laravel 12 upgrade, this release is the dependency that unblocks it — land the package upgrade with the framework upgrade, not before it.
Compatibility checks.
illuminate/support constraint overlaps both our current and target Laravel versions so a single lockfile can serve the transition.config:cache doesn't break in any environment where discovery is disabled.ar, ar_SA), including any new keys.Sequencing.
Maintenance. Near-zero runtime maintenance; pure computation, no I/O, no external services, no schema. The governance burden is on us: pin exact versions, keep Dependabot/Renovate alerting on, and review upstream repo health quarterly (commits, issue responsiveness, release cadence, maintainer activity).
Support. Single-maintainer concentration is the dominant operational risk. It is substantially mitigated by the fact that the package is thin — the conversion logic is a few hundred lines of forkable PHP. Document a fork plan and confirm the license permits it (MIT-style, verify). "Vendor exit cost" is genuinely low, which is what makes adoption defensible.
Scaling. A non-issue. Conversion is microseconds of CPU with no network or cache dependency. The only scaling consideration is volume: if we format thousands of dates per request (large report exports), cache the rendered strings or chunk the output rather than converting in a loop per row.
Failure modes.
config:cache in a non-auto-discovery or multi-tenant setup.Ramp-up. Low for any Laravel developer: an afternoon to integrate and ship. The real ramp-up cost is domain knowledge, not code. The team must understand the difference between Umm al-Qura and tabular Islamic calendars and know which one our compliance/finance stakeholders expect. Budget a short pairing session with the owner of the invoice/payroll output before the first production release — that conversation prevents the one failure mode that actually matters here.
How can I help you explore Laravel packages today?