PHPackages                             zuni/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. zuni/enum-bundle

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

zuni/enum-bundle
================

Bundle Enumeration

0110PHP

Since Jan 23Pushed 12y ago4 watchersCompare

[ Source](https://github.com/zunitec/EnumBundle)[ Packagist](https://packagist.org/packages/zuni/enum-bundle)[ RSS](/packages/zuni-enum-bundle/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependenciesVersions (1)Used By (0)

EnumBundle
==========

[](#enumbundle)

Instalação
----------

[](#instalação)

Adicione o EnumBundle em seu `composer.json`:

```
{
    "require": {
        "zuni/enum-bundle": "1.0.*@dev"
    }
}
```

Registre o bundle no AppKernel:

```
new Zuni\EnumBundle\ZuniEnumBundle(),
```

Para configurar adicione um type no doctrine. Vá em config (Arquivos importantes):

```
doctrine:
    dbal:
        ...
        types:
            enum: Zuni\EnumBundle\DBAL\Types\EnumType
```

Criar a classe da enum:

```
namespace Zuni\PessoaBundle\Enum;

use Zuni\EnumBundle\Model\AbstractEnumList;
use Zuni\EnumBundle\Model\AbstractEnumObject;

class TipoEnderecoEnum extends AbstractEnumList
{

    private static $instance;

    /**
     *
     * @var TipoEndereco
     */
    public $PRINCIPAL;

    /**
     *
     * @var TipoEndereco
     */
    public $ENTREGA;

    /**
     *
     * @var TipoEndereco
     */
    public $COBRANCA;

    function __construct()
    {
        $this->PRINCIPAL = new TipoEndereco("P", "tipoenderecoenum.principal");
        $this->ENTREGA = new TipoEndereco("E", "tipoenderecoenum.entrega");
        $this->COBRANCA = new TipoEndereco("C", "tipoenderecoenum.cobraca");
    }

    /**
     *
     * @return TipoEnderecoEnum
     */
    public static function getInstance()
    {
        if (!self::$instance) {
            self::$instance = new TipoEnderecoEnum();
        }
        return self::$instance;
    }

}

class TipoEndereco extends AbstractEnumObject{}
```

**Nota:**

> Os itens da TipoEnderecoEnum, estão com a descrição nesse formato (Ex: tipoenderecoenum.principal), para serem traduzidas. Caso não seja necessário, coloque a descrição que deseja para o form.

No form type, passar a enumList no options. Ele vai mostrar a listagem padrão:

```
    $builder
          ->add('tipoEndereco', 'enum', array(
                "label" => 'endereco.tipoEndereco',
                "enumList" => TipoEnderecoEnum::getInstance()
            ));
```

Caso queria passar uma listagem diferente, use o choices:

```
    $builder
          ->add('tipoEndereco', 'enum', array(
                "label" => 'endereco.tipoEndereco',
                "enumList" => TipoEnderecoEnum::getInstance(),
              "choices" => \Zuni\PessoaBundle\Enum\RegimeTributarioEnum::getInstance()->getLista(),
            ));
```

Ao declarar a classe, use as anotações da enum, faça da seguinte forma:

```
use Zuni\EnumBundle\Annotation;

    /**
     * Endereco
     *
     * @Annotation\HasEnum
     */
    class Endereco{}
```

Ao declarar o atributo da enum na classe, faça da seguinte forma:

```
    /**
     * @var \Zuni\PessoaBundle\Enum\TipoEndereco
     *
     * @Annotation\Enum(enumList="\Zuni\PessoaBundle\Enum\TipoEnderecoEnum")
     * @ORM\Column(name="tipo_endereco", type="enum", length=1, nullable=true)
     */
    private $tipoEndereco;
```

Acrescentar no form\_widget. Ele já está preparado para a tradução:

```
{% block enum_widget %}
{% spaceless %}
    {% if expanded %}
        {{ block('choice_widget_expanded') }}
    {% else %}
        {{ block('enum_widget_collapsed') }}
    {% endif %}
{% endspaceless %}
{% endblock enum_widget %}

{% block enum_widget_collapsed %}
{% spaceless %}

        {% if empty_value is not none %}
            {{ empty_value|trans({}, translation_domain) }}
        {% endif %}
        {% if preferred_choices|length > 0 %}
            {% set options = preferred_choices %}
            {{ block('choice_widget_options') }}
            {% if choices|length > 0 and separator is not none %}
                {{ separator }}
            {% endif %}
        {% endif %}

        {% if choices %}
            {% set options = choices %}
            {{ block('choice_widget_options') }}
        {% else %}
            {% set options = enumList.getLista() %}

            {{ block('enum_widget_options') }}
        {% endif %}

{% endspaceless %}
{% endblock enum_widget_collapsed %}

{% block enum_widget_options %}
{% spaceless %}
    {% for group_label, choice in options %}
        {% if choice is iterable %}

                {% set options = choice %}
                {{ block('enum_widget_options') }}

        {% else %}
            {{ choice|trans({}, translation_domain) }}
        {% endif %}
    {% endfor %}
{% endspaceless %}
{% endblock enum_widget_options %}
```

Após isso tudo, deverá funcionar.

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 92.3% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4996959?v=4)[Zunitec Tecnologias](/maintainers/zunitec)[@zunitec](https://github.com/zunitec)

---

Top Contributors

[![zunitec](https://avatars.githubusercontent.com/u/4996959?v=4)](https://github.com/zunitec "zunitec (12 commits)")[![deisezunino](https://avatars.githubusercontent.com/u/5417906?v=4)](https://github.com/deisezunino "deisezunino (1 commits)")

### Embed Badge

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

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

PHPackages © 2026

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