Package

Bensampo Laravel Enum

Simple, extensible and powerful enumeration implementation for Laravel.

Package

bensampo/laravel-enum

View on GitHub →

Laravel Enum Package Summary

Laravel Enum simplifies the use of enumerations in Laravel applications. Authored by Ben Sampson, it enhances the enum utility with a variety of powerful features tailored for the Laravel framework.

Key Features:

  • Simple Enum Classes: Define enums with key-value pairs as class constants.
  • Comprehensive Methods: Includes a full suite of methods to manipulate and query enum instances.
  • Instantiation and Safety: Enums can be instantiated safely, ensuring values are always valid.
  • Flagged/Bitwise Enums: Support for enums that can hold multiple values simultaneously.
  • Attribute Casting: Automatically cast model attributes to enum instances.
  • Validation Rules: Custom validation rules to ensure input adheres to defined enums.
  • Localization: Support for localizing enum descriptions.
  • Artisan Support: Generate enums via Artisan commands and more.
  • Extendability: Can be extended using Laravel's native macro capabilities.

Installation:

Laravel Enum requires PHP 8 and Laravel 9 or 10. Install it using Composer:

composer require bensampo/laravel-enum

Usage:

Create enums using Artisan:

php artisan make:enum UserType

Define enum values directly in the class:

final class UserType extends Enum {
    const Administrator = 0;
    const Moderator = 1;
    const Subscriber = 2;
}

Enums can be instantiated in various ways, including by key, value, or even using static methods:

$admin = UserType::Administrator();

Advanced Features:

  • Bitwise Enums: Useful for sets of permissions, where multiple enum values can be relevant simultaneously.
  • PHPStan and Laravel Nova Integration: Supports static analysis and integration with Laravel Nova.
  • Migration to Native PHP Enums: Guidance on migrating to native PHP enums (PHP 8.1+).

Migrations and Model Integration:

Easily define how enums interact with your database and Eloquent models, including custom casts for model attributes and straightforward migration recommendations.

Localization and Customization:

Localize enum descriptions and customize response outputs easily, enhancing readability and internationalization.

Developer Tools:

Includes a range of Artisan commands to streamline tasks like annotation, conversion to native enums, and more.

This package is ideal for developers looking to utilize enums in a Laravel project, providing robust tools and methods to manage enum values effectively.

Bensampo Laravel Enum Related Articles

Laravel Enum Package image

Laravel Enum Package

Read article
Laravel Enum Package for Generating enum-php Classes image

Laravel Enum Package for Generating enum-php Classes

Read article
Enhanced Enum Processing with Laravel's Default Parameter Support image

Enhanced Enum Processing with Laravel's Default Parameter Support

Read article
Converting Array Values to Enum Instances with Laravel's mapInto Method image

Converting Array Values to Enum Instances with Laravel's mapInto Method

Read article
Route Definition Enhancements in Laravel with Enum Integration image

Route Definition Enhancements in Laravel with Enum Integration

Read article
Enum Helpers for PHP image

Enum Helpers for PHP

Read article

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech

Let your users buy domains without leaving your app

If your Laravel app gives users a site, a storefront, or a workspace, they’ll eventually want their own domain. The name.com API lets them search, register, and connect one without leaving your product. It’s a clean REST API, so Laravel’s HTTP client is all you need.

Let your users buy domains without leaving your app

PhpStorm

The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

PhpStorm

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing