dobron / laravel-db-enum-generator
Database enum generator for Laravel.
Installs: 1 445
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^7.0 || ^8.0
- illuminate/console: ^5.6|^5.7|^5.8|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/support: ^5.6|^5.7|^5.8|^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- doctrine/inflector: ^2.0
- orchestra/testbench: ^3.6|^4.0|^5.0|^6.0
- phpunit/phpunit: >=7.0
- spatie/phpunit-snapshot-assertions: ^4.2
- squizlabs/php_codesniffer: ^3.0
README
Laravel package that introduces a new Artisan command to generate Enum classes fetched from database.
📖 Requirements
- PHP 7.0 or higher
- Laravel 5.6 or higher
📦 Install
Via Composer
$ composer require dobron/laravel-db-enum-generator --dev
⚡️ Usage
Enums can be generated by calling the Artisan command make:enum
and specifying the class or table name, and columns for key and value(s).
Id | Slug | Role |
---|---|---|
1 | MANAGER | Admin |
2 | CONTENT_CREATOR | Editor |
3 | MODERATOR | Moderator |
4 | ADVERTISER | Advertiser |
5 | INSIGHTS_ANALYST | Analyst |
$ php artisan make:enum App\Enums\UserRoleTypes --model=UserRole --id=Id --slug=Slug --title=Role
<?php namespace App\Enums; class UserRoleTypes { public const MANAGER = 1; public const CONTENT_CREATOR = 2; public const MODERATOR = 3; public const ADVERTISER = 4; public const INSIGHTS_ANALYST = 5; public static function map(): array { return [ static::MANAGER => 'Admin', static::CONTENT_CREATOR => 'Editor', static::MODERATOR => 'Moderator', static::ADVERTISER => 'Advertiser', static::INSIGHTS_ANALYST => 'Analyst', ]; } }
⚙️ Options
Option | Description | Default |
---|---|---|
model | Eloquent model class name | |
table | (or) The database table name | |
path | The path to generate enums in | |
id | ID column name | id |
slug | Slug column name | slug |
value | Column(s) name for map separated by comma | |
force | Create the class even if the enum already exists | false |
📅 Change log
Please see CHANGELOG for more information on what has changed recently.
🧪 Testing
$ composer test
🤝 Contributing
Please see CONTRIBUTING for details.
🙋 Credits
⚖️ License
The MIT License (MIT). Please see License File for more information.