PHPackages                             tourze/easy-admin-extra-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. [Admin Panels](/categories/admin)
4. /
5. tourze/easy-admin-extra-bundle

ActiveSymfony-bundle[Admin Panels](/categories/admin)

tourze/easy-admin-extra-bundle
==============================

EasyAdmin扩展

1.0.0(6mo ago)02.5k11MITPHPCI passing

Since Apr 14Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/tourze/easy-admin-extra-bundle)[ Packagist](https://packagist.org/packages/tourze/easy-admin-extra-bundle)[ RSS](/packages/tourze-easy-admin-extra-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (9)Dependencies (30)Versions (10)Used By (11)

EasyAdminExtraBundle
====================

[](#easyadminextrabundle)

[English](README.md) | [中文](README.zh-CN.md)

[![Latest Version](https://camo.githubusercontent.com/1b25b4ce66b81d7f98d4d91cd054a03af1f6bb1456eef3724157c9599bed7c79/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f746f75727a652f656173792d61646d696e2d65787472612d62756e646c652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/tourze/easy-admin-extra-bundle)[![PHP Version](https://camo.githubusercontent.com/c3d372b55ac2d4fcf386a178e11d9788310097b35f3893cf3daae574b6b4cd3e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545382e312d626c75652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/tourze/easy-admin-extra-bundle)

[![Build Status](https://camo.githubusercontent.com/0346e18af1343d739d0405776c07b83798d5bb0200e3efcfdf657e5e662f6403/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f746f75727a652f7068702d6d6f6e6f7265706f2f63692e796d6c3f7374796c653d666c61742d737175617265)](https://github.com/tourze/php-monorepo/actions)[![Code Coverage](https://camo.githubusercontent.com/6ce0146325478eb7cebae4cc6139b2af2c161735dd0e3c6ff6802f2c5a708179/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f746f75727a652f7068702d6d6f6e6f7265706f3f7374796c653d666c61742d737175617265)](https://codecov.io/gh/tourze/php-monorepo)

[![MIT Licensed](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)

Extension bundle for EasyAdmin, providing annotation-driven utilities and enhanced features for Symfony EasyAdmin.

Features
--------

[](#features)

- **AbstractCrudController**: Enhanced CRUD controller with automatic field configuration, permission control, and entity copying support
- **Annotation-Driven Configuration**: Uses PHP 8 attributes for automatic field and filter configuration
- **Field Services**: Automatic field type detection and configuration based on Doctrine mapping and annotations
- **Filter System**: Automatic filter creation based on `@Filterable` annotations
- **Search System**: Smart search field extraction using `@Keyword` annotations
- **Entity Copying**: Built-in support for entity cloning with configurable copy rules
- **Event System**: Pre/post operation events for create and modify operations
- **Tree Data Support**: Fetch and manipulate hierarchical data structures
- **Import/Export Support**: Identify and process importable entity properties
- **Multi-language Support**: Internationalization support for labels and messages

Installation
------------

[](#installation)

### Requirements

[](#requirements)

- PHP 8.1+
- Symfony 6.4+
- Doctrine ORM 2.17 or 3.0+

### Install via Composer

[](#install-via-composer)

Install the package via Composer:

```
composer require tourze/easy-admin-extra-bundle

```

Configuration
-------------

[](#configuration)

Add the bundle to your `config/bundles.php`:

```
Tourze\EasyAdminExtraBundle\EasyAdminExtraBundle::class => ['all' => true],

```

Usage
-----

[](#usage)

### AbstractCrudController

[](#abstractcrudcontroller)

The main feature is the enhanced CRUD controller that automatically configures fields and filters based on annotations:

```
use Tourze\EasyAdminExtraBundle\Controller\AbstractCrudController;

class UserCrudController extends AbstractCrudController
{
    public static function getEntityFqcn(): string
    {
        return User::class;
    }
}

```

### Annotation-Driven Entity Configuration

[](#annotation-driven-entity-configuration)

Use PHP 8 attributes to configure your entities:

```
use Tourze\EasyAdminAttribute\Attribute\FormField;
use Tourze\EasyAdminAttribute\Attribute\ListColumn;
use Tourze\EasyAdminAttribute\Attribute\Filterable;
use Tourze\EasyAdminAttribute\Attribute\Keyword;

class User
{
    #[ListColumn(order: 1)]
    #[FormField(order: 1)]
    #[Filterable]
    #[Keyword]
    private string $username;

    #[ListColumn(order: 2)]
    #[FormField(order: 2)]
    #[Filterable]
    private string $email;

    // Other properties...
}

```

### EntityDescriber

[](#entitydescriber)

This service reads entity information and provides methods to get property labels, column names, and field length.

```
use Tourze\EasyAdminExtraBundle\Service\EntityDescriber;

class MyService
{
    public function __construct(
        private readonly EntityDescriber $entityDescriber,
    ) {
    }

    public function example(\ReflectionProperty $property): string
    {
        // Get property label
        return $this->entityDescriber->getPropertyLabel($property);
    }
}

```

### ChoiceService

[](#choiceservice)

Create options from enum types for use in forms.

```
use Tourze\EasyAdminExtraBundle\Service\ChoiceService;

class MyService
{
    public function __construct(
        private readonly ChoiceService $choiceService,
    ) {
    }

    public function example(string $enumClass): array
    {
        // Create choices from enum
        return iterator_to_array($this->choiceService->createChoicesFromEnum($enumClass));
    }
}

```

### RepositoryTreeDataFetcher

[](#repositorytreedatafetcher)

Fetch and process tree-structured data from repositories.

```
use Tourze\EasyAdminExtraBundle\Service\RepositoryTreeDataFetcher;

class MyTreeService
{
    public function __construct(
        private readonly RepositoryTreeDataFetcher $treeFetcher,
    ) {
    }

    public function getTreeData(string $entityClass): array
    {
        $this->treeFetcher->setEntityClass($entityClass);
        return $this->treeFetcher->genTreeData();
    }
}

```

Advanced Usage
--------------

[](#advanced-usage)

### Custom Field Creation

[](#custom-field-creation)

You can extend the FieldService to create custom field types or modify existing field behavior:

```
use Tourze\EasyAdminExtraBundle\Service\FieldService;

class CustomFieldService extends FieldService
{
    public function createCustomField(\ReflectionProperty $property): ?FieldInterface
    {
        // Custom field creation logic
        return null;
    }
}

```

### Tree Data Manipulation

[](#tree-data-manipulation)

For complex tree data operations, you can extend the RepositoryTreeDataFetcher:

```
use Tourze\EasyAdminExtraBundle\Service\RepositoryTreeDataFetcher;

class CustomTreeDataFetcher extends RepositoryTreeDataFetcher
{
    public function customTreeProcessing(array $tree): array
    {
        // Custom tree processing logic
        return $tree;
    }
}

```

### Entity Copy Operations

[](#entity-copy-operations)

Use the CopyableRepository trait for entity copying functionality:

```
use Tourze\EasyAdminExtraBundle\Contract\CopyableRepository;

class MyEntityRepository extends ServiceEntityRepository
{
    use CopyableRepository;

    // Repository implementation
}

```

Testing
-------

[](#testing)

Run tests using PHPUnit:

```
cd packages/easy-admin-extra-bundle
composer install
php vendor/bin/phpunit

```

Or from the monorepo root:

```
php vendor/bin/phpunit packages/easy-admin-extra-bundle

```

Contributing
------------

[](#contributing)

Contributions are welcome! Please feel free to submit a Pull Request.

License
-------

[](#license)

This bundle is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance71

Regular maintenance activity

Popularity16

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

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

Recently: every ~48 days

Total

9

Last Release

191d ago

Major Versions

0.1.2 → 1.0.02025-11-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/e354fdb316da535dfa8ba2e9193a473c403b6bc6fb9170778d1dc50e304c6e9d?d=identicon)[tourze](/maintainers/tourze)

---

Top Contributors

[![tourze](https://avatars.githubusercontent.com/u/13899502?v=4)](https://github.com/tourze "tourze (2 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/tourze-easy-admin-extra-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/tourze-easy-admin-extra-bundle/health.svg)](https://phpackages.com/packages/tourze-easy-admin-extra-bundle)
```

###  Alternatives

[sylius/sylius

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

8.4k5.6M651](/packages/sylius-sylius)[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.3k](/packages/contao-core-bundle)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)

PHPackages © 2026

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