deligoez/laravel-model-hashid
illuminate/contracts constraint now includes ^13.0orchestra/testbench dev constraint bumped to include ^11.0 for Laravel 13 testingDecryptsHashIds trait now makes decoded values available via validated() in addition to input(). Previously, merge() only updated the input bag while validated() returned the original hash strings from the validator snapshot.ConfigParameters is now final with a private constructorHashIdDTO is now a readonly classConfig::checkIfModelClassExist() renamed to Config::checkIfModelClassExists()HasHashIdRouting::getRouteKey() return type changed from string to mixedHashId utility class — generic encode/decode without a model (HashId::encode(), HashId::decode(), HashId::buildGenerator())Blueprint::hashId() macro — schema sugar for nullable, unique hash id columns in migrationsHashIdCast — Eloquent cast for transparent hash id attribute storageSerializesHashId trait — replaces primary key with hash id in toArray() / toJson() output[@hashid](https://github.com/hashid) Blade directive — XSS-safe hash id output in templatesDecryptsHashIds trait — auto-decodes hash id inputs to integer keys in FormRequesthashid:encode Artisan command — encode a key to a hash id via CLIhashid:decode Artisan command — decode a hash id to its key via CLIValidHashId validation rule — format validation with optional model-specific check (no DB hit)HashIdExists validation rule — database existence check for Hash IdsGenerator::build() preventing TypeError with string config valuesGenerator::parseHashIDForModel() generic path for strict comparisonGenerator::parseHashIDForModel() when prefix_length is -1HasHashIdRouting::resolveRouteBindingQuery() simplified to use static::keyFromHashId() directlyHasHashId::getHashIdRawAttribute() removed redundant getKey() callHasHashId::keyFromHashId() returns null when decode yields empty array (#25)FindOrByHashIdMixin callback parameter position correctedConfigParameters constants are now typed (PHP 8.3 typed constants)ConfigParameters::$parameters static property replaced with ConfigParameters::PARAMETERS const arrayignoreErrors migrated to identifier-based formatServiceProvider::register() uses #[\Override] attributeConfig.php uses ::class syntax instead of get_class().php-cs-fixer.php config (replaced by Pint)run-tests.yml, phpstan.yml, pint.yml workflows (unified into ci.yml)phpstan-deprecation-rules and phpstan-phpunit dev dependenciesnunomaduro/collision dev dependencyStr use path in Generator.php by @frkcn in #20resolveRouteBindingQuery() by @bensherred in #16friendsofphp/php-cs-fixer with laravel/pintfindOrByHashId mixinModelHashId class to HashIdDTOkeyFromHashId method nameHow can I help you explore Laravel packages today?