Weave Code
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

Laravel Enum Laravel Package

bensampo/laravel-enum

Laravel Enum provides a powerful enum implementation for Laravel with class-constant definitions, instantiation, casting, validation, localization, bitwise/flag enums, and an artisan generator. Not recommended for new projects—use native PHP 8.1 enums.

View on GitHub
Deep Wiki
Context7
6.9.1

Fixed

  • Check if value is int or string in conversion of Enum::hasValue() to native enum
6.9.0

Added

  • Add conversion of Enum::hasValue() to native enum
6.8.0

Changed

  • Make php artisan enum:to-native compatible with rector 0.19
6.7.0

Added

  • Add PHPStan rule to detect duplicate enum values
6.6.4

Fixed

  • Fix conversion of Enum::fromKey() to native enum
6.6.3

Fixed

  • Remove leading backslash in class names passed to php artisan enum:to-native
6.6.2

Fixed

  • Convert single classes in one step with php artisan enum:to-native
6.6.1

Fixed

  • Disable timeout of rector calls in php artisan enum:to-native
6.6.0

Changed

  • Use command enum:to-native for simplified one-step conversion of classes that extend BenSampo\Enum\Enum to native PHP enums
6.5.0

Added

  • Add Rector rules for conversion of classes that extend BenSampo\Enum\Enum to native PHP enums

Deprecated

  • Deprecate command enum:to-native in favor of Rector conversion
6.4.1

Fixed

6.4.0

Added

  • Add command enum:to-native to convert a class that extends BenSampo\Enum\Enum to a native PHP enum

Fixed

6.3.3

Fixed

  • Allow mixed in Enum::hasValue()
6.3.2

Fixed

  • Preserve whitespace in PHPDocs when running enum:annotate command
6.3.1

Fixed

  • Mark Enum::$key and Enum::$description as non-nullable in Enum and document they are unset in FlaggedEnum
6.3.0

Added

  • Support Laravel 10 298
6.2.2

Fixed

  • Fix backtrack regexp error and add Windows EOL support to the annotate command 296
6.2.1

Fixed

  • Fix running php artisan enum:annotate on long enum class 294
6.2.0

Changed

  • Open EnumServiceProvider for customization 292
6.14.0

Added

  • Support Laravel 13
6.13.0

Added

  • Convert asArray() to native enum automatically
6.12.2

Changed

  • Simplify implementation of Enum::fromKey to native enum with dynamic class const fetch
6.12.1

Fixed

  • Avoid false-positive addition of ->value in enum:to-native
6.12.0

Added

  • Support Laravel 11
  • Support Rector 2
6.11.1

Fixed

  • Fix conversion of in() and notIn() to native enums when called with non-arrays
6.11.0

Added

  • Support Laravel 11
6.10.0

Added

  • Allow Allow installation alongside PHPUnit 11
6.1.0

Changed

  • Eliminate unnecessary abstract class AbstractAnnotationCommand 283

Fixed

  • Provide more accurate type hints in Enum and FlaggedEnum 283
  • Accept FlaggedEnum instances in QueriesFlaggedEnums scopes 283
6.0.0

Added

  • Allow Description attribute usage on class 270
  • Add generic type TValue to Enum class

Changed

  • Require composer/class-map-generator over composer/composer 268
  • Use native types whenever possible
  • Throw when calling Enum::getDescription() with invalid values
  • Expect class-string in InvalidEnumMemberException constructor

Fixed

  • Leverage late static binding for instantiation methods in PHPStan extension

Removed

  • Remove Enum::getInstance() in favor or Enum::fromValue()
5.3.1

Fixed

  • Narrow property type hints 258
5.3.0

Fixed

  • Return value for invalid enum case when using the Description attribute 264

Fixed

  • Type-hint Enum::$key and Enum::$description as string
  • Type-hint FlaggedEnum::$value as int
5.2.0

Fixed

  • Publish language definitions to lang directory 254

Added

  • Restore enum instance from var_export() 252
5.1.0

Added

  • Ability to define enum case descriptions using Description attribute.
5.0.0

Added

  • Support for Laravel 9

Changed

  • The annotate command now uses composer to parse directories for instances of enums instead of hanneskod/classtools

Removed

  • Removed old CastsEnums trait. Laravel attribute casting should be used now instead. 247
4.2.0

Fixed

  • Fix return type on FlaggedEnum flags method 241
  • Suppress deprecated notice on PHP8.1 236
4.1.0

Added

  • Allow package to be installed with PHP 8.1 #233

Changed

  • Allow laminas/laminas-code:^4.0 as a dependency #233
4.0.0

Fixed

  • Fixed validation error message localization when using string validation rules #227

Changed

  • Extend the functionality of the getKeys() and getValues() methods #223

Added

  • Added new method notIn() to check whether a value is not in an iterable set of values #232
3.4.2

Fixed

  • Fixed broken enums due to wrapping of long constant names in method annotations #226
3.4.1

Fixed

  • Fixed type issued in PHP 7.3
3.4.0

Added

  • addAllFlags() method to flagged enums
  • removeAllFlags() method to flagged enums

Fixed

  • Fixed coercion of flagged enums when the value represents multiple flags
3.3.0

Changed

  • Update doctrine/dbal requirement from ^2.9 to ^2.9|^3.0 #208
  • Allow passing iterables to Enum::in() #212

Fixed

  • fix: $model->getChanges() triggered due to strict comparison #187
  • Fixed issue in getFriendlyKeyNamewhen uppercase key contains non-alpha characters #210
3.2.0

Added

  • PHP 8.0 support #203

Changed

  • Switched from Travis to GitHub Actions
3.1.0

Added

  • Added trait to query flagged enums using Eloquent #180
  • Add the option to publish enums stubs #182

Changed

  • Improved test equality strictness #185

Fixed

  • fix:toSelectArray breaking change + document toArray change #184
3.0.0

Added

  • Support for Laravel 8

Fixed

  • Model annotation has been removed in favour of laravel-ide-helper #165
2.2.0

Fixed

  • Model attributes which use Laravel 7 native casting now return the enum value when serialized. #162 #163

Deprecated

  • Enum::toArray() should no longer be called statically, instead use Enum::asArray().
2.1.0

Fixed

  • Allow returning null when using native casting #152
2.0.0

Added

  • Native attribute casting #131

Changed

  • Require Laravel 7.5 or higher
  • Require PHP 7.2.5 or higher

Deprecated

  • Deprecate legacy attribute casting in favor of native casting
1.38.0

Fixed

  • Handle calling magic instantiation methods from within instance methods of the Enum #147
  • Add new instantiation methods Enum::fromKey() and Enum::fromValue() #142
  • Fixed issue with localized validation messages #141

Deprecated

  • Deprecate Enum::getInstance() in favor of Enum::fromValue()
1.37.0

Changed

  • EnumValue validation rule allows multiple flags for FlaggedEnums
1.36.0

Changed

  • Validation messages are now pulled from translation files #134
1.35.0

Changed

  • Added missing pipe validation syntax for enum instance validation #132
1.34.0

Changed

1.33.0

Added

  • Add Laravel 7.x compatibility
1.32.0

Added

  • Add tests and make EnumMethodReflection return generating constant values for isInternal, isDeprecated, and getDeprecatedDescription #121
1.31.0

Added

  • Add compatibility with PHPStan 0.12.x #119
  • Changelog started.
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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport