PHPackages                             palabs/enum-bundle - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. palabs/enum-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

palabs/enum-bundle
==================

Symfony bundle for php 8.1 enums

3.3.0(1mo ago)21.7k1[2 PRs](https://github.com/PaLabs/EnumBundle/pulls)MITPHPPHP ^8.2

Since Apr 8Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/PaLabs/EnumBundle)[ Packagist](https://packagist.org/packages/palabs/enum-bundle)[ RSS](/packages/palabs-enum-bundle/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (26)Versions (22)Used By (0)

Symfony bundle for PaLabs/php-enum
==================================

[](#symfony-bundle-for-palabsphp-enum)

Bundle provide integration PaLabs/php-enum with symfony

[![Build Status](https://camo.githubusercontent.com/3b4bc8b849f84f5ad637ed05ba7023906cf1516c6b63a9762b9ee73a7cfb1bbd/68747470733a2f2f7472617669732d63692e636f6d2f50614c6162732f456e756d42756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.com/PaLabs/EnumBundle.svg?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/fb8054ea59460a61d7a724183e91ec7b79a179b4c49f3cc8d33e0b64c996fdb0/68747470733a2f2f706f7365722e707567782e6f72672f70616c6162732f656e756d2d62756e646c652f762f737461626c65)](https://packagist.org/packages/palabs/EnumBundle)[![License](https://camo.githubusercontent.com/250f70fe4dd75161582ca2193e613ae42041265424f426fd2ad700f6381b5d92/68747470733a2f2f706f7365722e707567782e6f72672f70616c6162732f656e756d2d62756e646c652f6c6963656e7365)](https://packagist.org/packages/palabs/EnumBundle)

Features
--------

[](#features)

- Enum form type
- Enum translator (with twig extension)
- Doctrine integration (enum field type, types auto generation)
- Enum auto initializer

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

[](#installation)

1. Require bundle using composer

```
composer require palabs/enum-bundle

```

2. Add bundle to bundle list (file bundles.php in symfony 5)

```
return [
    PaLabs\EnumBundle\PaEnumBundle::class => ['all' => true],
];
```

3. Create configuration (in your config dir). Example:

```
pa_enum:
  translator:
    domain: 'enums'
  doctrine:
    path:
      - '%kernel.project_dir%/src'
```

Usage
-----

[](#usage)

### Translator

[](#translator)

EnumTranslator class provide methods to translate enum values. Example:

```
use PaLabs\Enum\Enum;
use \PaLabs\EnumBundle\Translator\EnumTranslator;
use Symfony\Component\HttpFoundation\Request;

class ActionEnum extends Enum {
    public static ActionEnum $VIEW, $EXIT;
}
ActionEnum::init();

class FooController {
    private EnumTranslator $enumTranslator;

    public function __construct(EnumTranslator $enumTranslator) {
        $this->enumTranslator = $enumTranslator;
    }

    public function fooAction(Request $request) {
        return $this->enumTranslator->translate(ActionEnum::$VIEW);
    }

}
```

### Enum form

[](#enum-form)

Class EnumType provide symfony form type for your forms. Example:

```
use PaLabs\EnumBundle\Form\EnumType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class MyForm extends AbstractType {
    public function buildForm(FormBuilderInterface $builder,array $options){
        $builder->add('field', EnumType::class, [
            'type'=>ActionEnum::class,
             'required' => true,
        ]);
    }
}
```

### Doctrine type

[](#doctrine-type)

Bundle provide a mechanism for doctrine type generation based on you enums. For example, if you have an entity class:

```
use Doctrine\ORM\Mapping as ORM;
use PaLabs\Enum\Enum;

class BookType extends Enum {
    public static BookType $MONOGRAPHY, $THESES, $OTHER:
}
BookType::init();

class Book {

    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private ?int $id = null;

    /**
     * @ORM\Column(name="name", type="text", nullable=false)
     */
    private string $name = '';

    /**
      * @ORM\Column(name="type", type=BookType::class, nullable=false)
     */
    private BookType $type;

    public function __construct() {
        $this->type = BookType::$MONOGRAPHY;
    }
}
```

Bundle will automaticly generate a doctrine type for BookType enum and add it to doctrine types config. You can specify paths where enums will be found:

```
pa_enum:
  doctrine:
    path:
      - '%kernel.project_dir%/src'
      - '%kernel.project_dir%/vendor/my-bundle/src'
```

### Enum initializer

[](#enum-initializer)

To not manually call Enum::init() for every enum, you can use enum initializer. Simply add to bundle config:

```
pa_enum:
    initializer:
      path:
        - - '%kernel.project_dir%/src'
```

And bundle will automatically call init() for every enum in path. init() will be called on bundle boot.

###  Health Score

54

—

FairBetter than 96% of packages

Maintenance92

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity78

Established project with proven stability

 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 ~124 days

Recently: every ~132 days

Total

19

Last Release

38d ago

Major Versions

0.3.0 → 1.0.02022-05-20

1.0.2 → 2.0.02022-06-15

2.1.0 → 3.0.02024-02-09

PHP version history (5 changes)0.0.1PHP ^7.4

0.2.2PHP ^7.4 || ^8.0

0.3.0PHP ^8.0

1.0.0PHP ^8.1

3.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/70ffcbf404633790b0c0161c36d1210e338918e230731ab661572309d5214fff?d=identicon)[lewbor](/maintainers/lewbor)

---

Top Contributors

[![lewbor](https://avatars.githubusercontent.com/u/1887927?v=4)](https://github.com/lewbor "lewbor (25 commits)")

---

Tags

symfonyenumphp-enum

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/palabs-enum-bundle/health.svg)

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

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M738](/packages/sylius-sylius)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)[oro/platform

Business Application Platform (BAP)

645143.5k115](/packages/oro-platform)[contao/core-bundle

Contao Open Source CMS

1231.6M2.8k](/packages/contao-core-bundle)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)

PHPackages © 2026

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