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.1.1(5mo ago)21.7k1[2 issues](https://github.com/PaLabs/EnumBundle/issues)[2 PRs](https://github.com/PaLabs/EnumBundle/pulls)MITPHPPHP ^8.2

Since Apr 8Pushed 5mo 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 1w ago

READMEChangelogDependencies (13)Versions (20)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

43

—

FairBetter than 91% of packages

Maintenance50

Moderate activity, may be stable

Popularity19

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity77

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

Recently: every ~166 days

Total

17

Last Release

167d 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 (23 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

[sylius/sylius

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

8.4k5.6M651](/packages/sylius-sylius)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k16.7M310](/packages/easycorp-easyadmin-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

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