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

Enum Laravel Package

daverandom/enum

Lightweight PHP enum base class: extend a single abstract class and define members as constants. Includes static helpers to validate and resolve enum names and values. Useful for simple, shared enum functionality.

View on GitHub
Deep Wiki
Context7

A base class for enumerations in PHP

Frequently asked questions about Enum
Is daverandom/enum compatible with Laravel 9+ and PHP 8.0+?
The package claims PHP 8.0+ support, but there’s no evidence of testing against Laravel 9+ or PHP 8.2+. Since it’s a new release (1.0.0) with no prior adoption, compatibility risks are high. Test thoroughly in your environment before use.
How do I define an enum with this package?
Extend the abstract `Enum` class and define members as class constants (e.g., `const RED = 1;`). The package provides static methods like `isValidName()` and `getValue()` to validate and resolve names/values without manual boilerplate.
Why use this package instead of PHP 8.1’s native enums?
Native enums (PHP 8.1+) are the recommended choice for new projects. This package is a lightweight alternative for legacy PHP <8.1, but it’s untested and lacks maintenance. Only consider it if native enums are unavailable and you’ve validated no better alternatives exist.
Does this package support Laravel service providers or Eloquent?
No, this is a pure PHP utility with no Laravel-specific features like service providers or Eloquent integration. You’ll need to manually integrate it into your application if required.
Are there any known edge cases where native enums fail?
Native enums cover most use cases, but this package might appeal to developers needing pre-PHP 8.1 support or custom validation logic. However, since it’s unmaintained, edge cases are undocumented—test rigorously for critical applications.
How do I validate enum values at runtime?
Use the static `isValidName()` or `isValidValue()` methods to check if a name/value belongs to the enum. For example: `YourEnum::isValidName('RED')` returns `true` if 'RED' is a defined constant.
What are the risks of using this package in production?
High risks include undefined behavior in PHP 8.2+, lack of Laravel integration testing, and no maintenance track record. Security vulnerabilities or breaking changes could occur without warning. Prefer native enums or maintained alternatives like `myclabs/php-enum`.
Can I use this package with testing frameworks like Pest or PHPUnit?
Yes, but expect no built-in testing utilities. You’ll need to manually write tests for validation and resolution methods. The package’s lack of documentation means edge cases may require extra effort to test.
Are there alternatives to this package for Laravel?
For PHP 8.1+, use native enums. For legacy PHP, consider `myclabs/php-enum` (actively maintained) or `spatie/laravel-enum` (Laravel-specific). This package is not recommended unless you’ve confirmed no alternatives meet your needs.
How do I resolve an enum name to its value?
Use the static `getValue()` method with the enum name as an argument. For example: `YourEnum::getValue('RED')` returns the corresponding constant value if it exists, or `null` if invalid.
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.
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope