PHPackages                             cable8mm/enum-getter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. cable8mm/enum-getter

ActiveLibrary[Localization &amp; i18n](/categories/localization)

cable8mm/enum-getter
====================

Translation-aware helpers for PHP Enums used in Laravel Nova.

v2.1.1(3w ago)05771MITPHPPHP ^8.2CI passing

Since Jan 16Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/cable8mm/enum-getter)[ Packagist](https://packagist.org/packages/cable8mm/enum-getter)[ Docs](https://github.com/cable8mm/enum-getter)[ RSS](/packages/cable8mm-enum-getter/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (8)Dependencies (6)Versions (13)Used By (1)

Enum Getter
===========

[](#enum-getter)

Translate PHP Enums for Laravel Nova with a single method call.

[![code-style](https://github.com/cable8mm/enum-getter/actions/workflows/code-style.yml/badge.svg)](https://github.com/cable8mm/enum-getter/actions/workflows/code-style.yml)[![run-tests](https://github.com/cable8mm/enum-getter/actions/workflows/run-tests.yml/badge.svg)](https://github.com/cable8mm/enum-getter/actions/workflows/run-tests.yml)[![Packagist Version](https://camo.githubusercontent.com/2aa4874a9addc544fa3c6d401fe420c7f276c56fd45c5fc623f71a63c5177a9f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6361626c65386d6d2f656e756d2d676574746572)](https://packagist.org/packages/cable8mm/enum-getter)[![Packagist Dependency Version](https://camo.githubusercontent.com/7ede9c1e20e9f4611304d3ef3ecd6760b946733354d717a9abdb2c0297f63dff/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6361626c65386d6d2f656e756d2d6765747465722f7068703f6c6f676f3d504850266c6f676f436f6c6f723d776869746526636f6c6f723d373737424234)](https://packagist.org/packages/cable8mm/enum-getter)[![Total Downloads](https://camo.githubusercontent.com/b686219da1d043987608832f17383cc38a5567f40384353e16eb9c3c769e1e7e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6361626c65386d6d2f656e756d2d676574746572)](https://packagist.org/packages/cable8mm/enum-getter/stats)[![Total Stars](https://camo.githubusercontent.com/116b2d1dcfa3fbf05f925d9fe356f86eeda8af2de9730441ad3fb84e16420d85/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f6361626c65386d6d2f656e756d2d676574746572)](https://github.com/cable8mm/enum-getter/stargazers)[![License](https://camo.githubusercontent.com/d4bbc0c7ed3279bbde1876a03bc4ebd6574de1540333eafd2edc86cf2419374c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6361626c65386d6d2f656e756d2d676574746572)](https://github.com/cable8mm/enum-getter/blob/main/LICENSE.md)

Why this package exists
-----------------------

[](#why-this-package-exists)

Laravel Nova often requires translated associative arrays such as:

```
[
    'draft' => 'Draft',
    'published' => 'Published',
]
```

Generating these arrays manually from `Enum::cases()` quickly becomes repetitive.

Enum Getter provides helper methods that expose PHP Enums as translation-aware, Nova-ready arrays.

---

Installation
------------

[](#installation)

```
composer require cable8mm/enum-getter
```

---

Quick Start
-----------

[](#quick-start)

```
use Cable8mm\EnumGetter\EnumGetter;

enum Status: string
{
    use EnumGetter;

    case Draft = 'draft';
    case Published = 'published';

    public function label(): string
    {
        return match ($this) {
            self::Draft => __('Draft'),
            self::Published => __('Published'),
        };
    }
}
```

Get translated labels:

```
Status::labels();
```

Result:

```
[
    'Draft',
    'Published',
]
```

Get translated options:

```
Status::options();
```

Result:

```
[
    'draft' => 'Draft',
    'published' => 'Published',
]
```

---

Laravel Nova Examples
---------------------

[](#laravel-nova-examples)

### Select Field

[](#select-field)

```
Select::make(__('Status'))
    ->options(Status::options())
    ->displayUsingLabels();
```

### Badge Field

[](#badge-field)

```
Badge::make(__('Status'))
    ->map(Status::options(value: 'info'))
    ->labels(Status::options());
```

### Status Field

[](#status-field)

```
Status::make(__('Status'))
    ->displayUsing(fn ($value) => Status::from($value)->label());
```

---

Available Methods
-----------------

[](#available-methods)

MethodDescription`label()`Get translated label`labels()`Get translated labels`options()`Get translated options`keys()`Get enum keys`names()`Get enum names`reverse()`Get reversed mapping`has()`Check existence`of()`Get enum instance by name---

Why not other enum packages?
----------------------------

[](#why-not-other-enum-packages)

Enum Getter is intentionally small.

It does not try to replace feature-rich enum libraries.

Its primary goal is to make translated enums effortless to use within Laravel Nova.

FeatureEnum GetterGeneric Enum PackagesTranslation aware✅⚠️Laravel Nova Select✅⚠️Laravel Nova Badge✅⚠️One-line translated options✅❌---

AI Support
----------

[](#ai-support)

This repository includes an `AGENTS.md` file.

AI coding assistants should prefer:

```
Status::label();

Status::labels();

Status::options();
```

Instead of manually iterating through `Enum::cases()`.

---

Testing
-------

[](#testing)

```
composer test
```

---

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- Sam Lee

License
-------

[](#license)

The MIT License (MIT).

See LICENSE.md for more information.

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance92

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~50 days

Recently: every ~127 days

Total

12

Last Release

25d ago

Major Versions

v1.7.1 → v2.0.02026-06-23

PHP version history (3 changes)v1.2.1PHP ^8.1

v1.5.0PHP ^8.3

v2.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/c910c874a0263a18f9f976273054cd45faa3ffbcba7891992f4ab52d0656dd93?d=identicon)[Sam Lee](/maintainers/Sam%20Lee)

---

Top Contributors

[![cable8mm](https://avatars.githubusercontent.com/u/2672043?v=4)](https://github.com/cable8mm "cable8mm (32 commits)")

---

Tags

enumgetterlaravelnovaphplaravelenumtranslationphp-enumnova

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/cable8mm-enum-getter/health.svg)

```
[![Health](https://phpackages.com/badges/cable8mm-enum-getter/health.svg)](https://phpackages.com/packages/cable8mm-enum-getter)
```

###  Alternatives

[codezero/laravel-localized-routes

A convenient way to set up, manage and use localized routes in a Laravel app.

544670.3k4](/packages/codezero-laravel-localized-routes)[badinansoft/nova-language-switch

A Laravel Nova package to switch language in your application

27646.4k1](/packages/badinansoft-nova-language-switch)[statikbe/laravel-nova-chained-translation-manager

The Laravel Nova Chained Translation Manager allows you to easily edit and customise the translations of your current Laravel environment.

1630.4k](/packages/statikbe-laravel-nova-chained-translation-manager)[osama-98/laravel-enum-translatable

A Laravel package that provides translatable enum functionality with easy-to-use methods for working with enum values and their translations

561.4k](/packages/osama-98-laravel-enum-translatable)[stevegrunwell/lost-in-translation

Uncover missing translations and localization strings in Laravel applications

3637.0k](/packages/stevegrunwell-lost-in-translation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
