Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adrenalinkin/entity-helper-bundle
Symfony bundle. Provides help for the work with entities which managed by Doctrine
https://github.com/adrenalinkin/entity-helper-bundle
doctrine entity-helper symfony-bundle
Last synced: 11 days ago
JSON representation
Symfony bundle. Provides help for the work with entities which managed by Doctrine
- Host: GitHub
- URL: https://github.com/adrenalinkin/entity-helper-bundle
- Owner: adrenalinkin
- License: mit
- Created: 2018-02-13T16:10:58.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-04-10T10:48:57.000Z (over 6 years ago)
- Last Synced: 2024-10-11T23:07:41.473Z (2 months ago)
- Topics: doctrine, entity-helper, symfony-bundle
- Language: PHP
- Homepage:
- Size: 13.7 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
Entity Helper Bundle [![In English](https://img.shields.io/badge/Switch_To-English-green.svg?style=flat-square)](./README.md)
====================Введение
--------Помощник позволяет выполнять востребованные преобразования с сущностями управляемыми `Doctrine`.
Функциональность помощника доступна для работы с объектами, находящимся под управлением доктрины.
Помощник использует внутренний кэш для экономии вычислительных ресурсов.Установка
---------### Шаг 1: Загрузка бандла
Откройте консоль и, перейдя в директорию проекта, выполните следующую команду для загрузки наиболее подходящей
стабильной версии этого бандла:
```bash
composer require adrenalinkin/entity-helper-bundle
```
*Эта команда подразумевает что [Composer](https://getcomposer.org) установлен и доступен глобально.*### Шаг 2: Подключение бандла
После включите бандл добавив его в список зарегистрированных бандлов в `app/AppKernel.php` файл вашего проекта:
```php
get('linkin_entity_helper.helper');// ...
```
Допустим у нас есть сущность `AcmeBundle\Entity\User`:
```php
get('linkin_entity_helper.helper');// Создать пустую сущность User
$user = $entityHelper->createEntity(User::class);// Создать пустую сущность на основе короткого имени
$user = $entityHelper->createEntity('AcmeBundle:User');// Создать сущность и заполнить поля значениями
$user = $entityHelper->createEntity('AcmeBundle:User', ['id' => 1, 'username' => 'acme-login']);// Создать сущность и заполнить идентификатор если имя поля идентификатора заранее неизвестно
foreach (['AcmeBundle:User', 'AcmeBundle:Role'] as $className) {
$object = $entityHelper->createEntity($className, [EntityHelper::IDENTITY => 1]);
}
```### getEntityClassFull
Возвращает полное имя класса на основе объекта или имени класса.
```php
get('linkin_entity_helper.helper');$className = $entityHelper->getEntityClassFull(User::class);
$className = $entityHelper->getEntityClassFull('AcmeBundle:User');
$className = $entityHelper->getEntityClassFull($user);
```Во всех случаях будет возвращена строка: `AcmeBundle\Entity\User`.
### getEntityClassShort
Возвращает сокращенное имя класса на основе объекта или имени класса.
```php
get('linkin_entity_helper.helper');$className = $entityHelper->getEntityClassShort(User::class);
$className = $entityHelper->getEntityClassShort('AcmeBundle\Entity\User');
$className = $entityHelper->getEntityClassShort($user);
```Во всех случаях будет возвращена строка: `AcmeBundle:User`.
### getEntityIdNames
Возвращает список имен полей идентификаторов на основе объекта или имени класса.
```php
get('linkin_entity_helper.helper');$names = $entityHelper->getEntityIdNames(User::class);
$names = $entityHelper->getEntityIdNames('AcmeBundle\Entity\User');
$names = $entityHelper->getEntityIdNames('AcmeBundle:User');
$names = $entityHelper->getEntityIdNames($user);
```Во всех случаях будет возвращен массив: `['id']`.
### getEntityIdName
Возвращает название поля идентификатора класса на основе объекта или имени класса.
**Важно**: если класс имеет два или более идентификатора то метод вернет название только одного первого поля.```php
get('linkin_entity_helper.helper');$idName = $entityHelper->getEntityIdName(User::class);
$idName = $entityHelper->getEntityIdName('AcmeBundle\Entity\User');
$idName = $entityHelper->getEntityIdName('AcmeBundle:User');
$idName = $entityHelper->getEntityIdName($user);
```Во всех случаях будет возвращена строка: `id`.
### getEntityIdValues
Возвращает список значений всех идентификаторов класса на основе объекта класса.
```php
get('linkin_entity_helper.helper');
/** @var \AcmeBundle\Entity\User $user */
$user = $entityHelper->createEntity('AcmeBundle:User', ['id' => 1]);$idValues = $entityHelper->getEntityIdValues($user);
```Будет возвращен массив: `[1]`.
### getEntityIdValue
Возвращает значение идентификатора класса на основе объекта класса.
**Важно**: если класс имеет два или более идентификатора то метод вернет значение только одного первого поля.```php
get('linkin_entity_helper.helper');
/** @var \AcmeBundle\Entity\User $user */
$user = $entityHelper->createEntity('AcmeBundle:User', ['id' => 1]);$idValue = $entityHelper->getEntityIdValues($user);
```Будет возвращено число: `1`.
### getEntityMetadata
Возвращает мета-данные класса `\Doctrine\ORM\Mapping\ClassMetadata` на основе объекта или имени класса.
```php
get('linkin_entity_helper.helper');$metaData = $entityHelper->getEntityMetadata(User::class);
$metaData = $entityHelper->getEntityMetadata('AcmeBundle\Entity\User');
$metaData = $entityHelper->getEntityMetadata('AcmeBundle:User');
$metaData = $entityHelper->getEntityMetadata($user);
```Во всех случаях будет возвращен объект: `\Doctrine\ORM\Mapping\ClassMetadata`.
### isManagedByDoctrine
Определяет находится ли под управлением `Doctrine` запрашиваемый класс.
```php
get('linkin_entity_helper.helper');$isManaged = $entityHelper->isManagedByDoctrine(User::class);
$isManaged = $entityHelper->isManagedByDoctrine('AcmeBundle\Entity\User');
$isManaged = $entityHelper->isManagedByDoctrine('AcmeBundle:User');
$isManaged = $entityHelper->isManagedByDoctrine($user);
```Во всех случаях будет возвращено логическое значение: `true`.
Лицензия
--------[![license](https://img.shields.io/badge/License-MIT-green.svg?style=flat-square)](./LICENSE)