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

Dot Net Json Date Formatter Laravel Package

webapix/dot-net-json-date-formatter

Converts .NET JSON dates (/Date(…)/ format) to and from PHP DateTime objects, with Laravel-friendly helpers for parsing and formatting legacy ASP.NET API timestamps.

View on GitHub
Deep Wiki
Context7

Getting Started

The v1.1.0 release is intentionally narrow: PHP 8.1 support added. There is no prior assessment on record and no package metadata supplied, so treat this as a compatibility release and verify the following before adopting it.

  1. Read composer.json first. The entire substance of this release lives in the require.php constraint. Confirm what actually changed:
    • Widened constraint (^8.0 || ^8.1, >=8.0) → non-breaking, safe to upgrade.
    • Raised minimum (^8.1) → breaking for anyone on PHP 8.0, and should arguably have shipped as 2.0.0. If it did not, pin the previous tag.
  2. Check the CI matrix and phpunit.xml to confirm 8.1 is genuinely tested rather than merely declared.
  3. First use case: install into an existing Laravel app already running PHP 8.1 and exercise the package's primary path before touching production:
composer require vendor/package:^1.1 --with-all-dependencies
php artisan about          # confirm framework/PHP versions
composer check-platform-reqs
vendor/bin/phpunit --filter=PackageRelatedTest
  1. Where to look next: the service provider (for version-gated bindings), the config file (config/package.php), and the changelog for any deprecation notes that were folded into this release.

Implementation Patterns

  • Upgrade path, not greenfield. On an existing app, run composer why-not php 8.1 and composer why-not vendor/package 1.1.0 before updating. Transitive constraints are the usual blocker, not the package itself.
  • CI matrix. Test the package (or your integration with it) across the full supported range, e.g. PHP 8.0 × 8.1 and the Laravel majors you claim (9.x, 10.x). Testing only 8.1 lets 8.1-only syntax silently break 8.0 users.
  • Laravel/PHP alignment. PHP 8.1 is supported by Laravel 8.83+ and 9.x. If you are on an older Laravel 8 point release, upgrade Laravel first — the framework, not this package, will be your failure point.
  • Docker/CI platform pinning. If any job sets config.platform.php in composer.json, bump it alongside the matrix or resolution will keep installing as if you were on 8.0.
  • Feature adoption is optional. 8.1 brings enums, readonly properties, never, first-class callable syntax, array_is_list(), fibers, and pure intersection types. Adopt these in your application code freely, but do not assume the package exposes 8.1-only types in its public API.
  • Local verification harness. Add a smoke test that boots the provider and hits the package's main entry point; this catches the return-type deprecations below far faster than a full suite.

Gotchas and Tips

  • "Support" ≠ "tested." Many point releases add a constraint without a CI job. Grep .github/workflows for 8.1 and check the PHPUnit version — PHPUnit 9.5+ is required for clean 8.1 runs; older PHPUnit emits noisy failures.
  • Internal interface return types. PHP 8.1 raises deprecations for ArrayAccess, Iterator, Countable, JsonSerializable, IteratorAggregate implementations missing return types. If the package or your wrappers trigger these, add #[\ReturnTypeWillChange] rather than guessing signatures.
  • 8.1 deprecations that commonly surface here: strftime()/gmstrftime(), FILTER_SANITIZE_STRING, utf8_encode()/utf8_decode(), mhash*(), and $GLOBALS whole-array read/write. If the package touches any of these, expect E_DEPRECATED in logs even though nothing is broken yet.
  • Deprecations are not errors — until they are. In Laravel, deprecations routed through the error handler can fail tests. Set convertDeprecationsToExceptions="false" (PHPUnit 9.5) while triaging so you can separate pre-existing noise from regressions.
  • composer update scope. Use composer update vendor/package --with-all-dependencies; a bare update may leave a transitive dependency pinned to a non-8.1-compatible version.
  • Don't merge 8.1-only syntax upward. If upstream still supports 8.0, avoid enums/readonly in code that must run there — or guard by bumping the minimum in a major release.
  • Extension points worth checking on any compatibility bump: the service provider's register()/boot() (version-conditional bindings often hide here), published config defaults, and any Class::method() string callables that first-class callable syntax would change.
  • Debugging checklist: composer diagnose → composer check-platform-reqs → php -l across src/ → run the suite with -d error_reporting=E_ALL to surface deprecations that default config hides.
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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings