Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/adrenalinkin/enum-property-bundle

Provides integration EnumMapper component with Symfony
https://github.com/adrenalinkin/enum-property-bundle

enum-mapper human-readable humanized-values symfony-bundle

Last synced: about 9 hours ago
JSON representation

Provides integration EnumMapper component with Symfony

Awesome Lists containing this project

README

        

Enum Property Bundle [![In English](https://img.shields.io/badge/Switch_To-English-green.svg?style=flat-square)](./README.md)
====================

Введение
--------

Бандл интегрирует компонент [EnumMapper](https://github.com/adrenalinkin/enum-mapper) с экосистемой `Symfony`.
Предоставляет набор фильтров и функций для `Twig` и валидатор.

Установка
---------

### Шаг 1: Загрузка бандла

Откройте консоль и, перейдя в директорию проекта, выполните следующую команду для загрузки наиболее подходящей
стабильной версии этого бандла:
```bash
composer require adrenalinkin/enum-property-bundle
```
*Эта команда подразумевает что [Composer](https://getcomposer.org) установлен и доступен глобально.*

### Шаг 2: Подключение бандла

После включите бандл добавив его в список зарегистрированных бандлов в `app/AppKernel.php` файл вашего проекта:

```php

{% endfor %}
{#
0: Undefined
10: Male
20: Female
#}
```

#### enum_allowed_db и enum_allowed_human

Получение списка всех доступных значений для базы данных и аналогичный метод для получения доступных человеко-понятных
значений:

```twig
{% set class = '\\Acme\\Bundle\\AcmeBundle\\Entity\\Mapper\\GenderMapper' %}

{{ enum_allowed_db(class)|join(', ') }} {# 0, 10, 20 #}
{{ enum_allowed_human(class)|join(', ') }} {# Undefined, Male, Female #}

{# Исключение значений из возвращаемого результата #}
{{ enum_allowed_db(class, [0])|join(', ') }} {# 10, 20 #}
{{ enum_allowed_human(class, ['Undefined'])|join(', ') }} {# Male, Female #}
```

#### enum_random_db и enum_random_human

Получение случайного значения одного из доступных значений базы данных или человеко-понятного представления:

```twig
{% set class = '\\Acme\\Bundle\\AcmeBundle\\Entity\\Mapper\\GenderMapper' %}

{{ enum_random_db(class) }} {# 0 || 10 || 20 #}
{{ enum_random_human(class) }} {# Undefined || Male || Female #}

{# Исключение значений из возвращаемого результата #}
{{ enum_random_db(class, [0]) }} {# 10 || 20 #}
{{ enum_random_human(class, ['Undefined']) }} {# Male || Female #}
```

### Enum валидатор

Для проверки использующих `EnumMapper` полей в бандле создан валидатор `EnumValidator`. Валидатор является расширением
`ChoiceValidator`, входящего в поставку `Symfony`. Происходит переопределение стандартного сообщения об ошибке и массива
`choice`. Массив `choice` вы не сможете определить из вне, он всегда будет принимать допустимые значения
выбранного класса. Также добавлены несколько дополнительных опций. Одна обязательная:

* `mapperName` - содержит полное имя класса.

Вторая опциональная переменная:

* `exclude` - массив исключений из списка допустимых значений класса-карты (значения в формате базы данных).

#### Пример использования валидатора

```yaml
Acme\Bundle\AcmeBundle\Entity\User:
properties:
gender:
- Linkin\Bundle\EnumPropertyBundle\Validator\Constraints\Enum:
mapperName: 'Acme\Bundle\AcmeBundle\Entity\Mapper\GenderMapper'
exclude: [0]
```

Лицензия
--------

[![license](https://img.shields.io/badge/License-MIT-green.svg?style=flat-square)](./LICENSE)