Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 1 month ago
JSON representation
Provides integration EnumMapper component with Symfony
- Host: GitHub
- URL: https://github.com/adrenalinkin/enum-property-bundle
- Owner: adrenalinkin
- License: mit
- Created: 2018-02-16T17:51:28.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-04-10T10:53:09.000Z (over 6 years ago)
- Last Synced: 2024-10-20T04:00:42.991Z (2 months ago)
- Topics: enum-mapper, human-readable, humanized-values, symfony-bundle
- Language: PHP
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.RU.md
- Changelog: CHANGELOG.md
- License: LICENSE
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)