PHPackages                             arkounay/quick-admin-generator-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. arkounay/quick-admin-generator-bundle

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

arkounay/quick-admin-generator-bundle
=====================================

QAG is a bundle that generates cruds admin for Symfony applications using Doctrine.

5.6.1(9mo ago)2510.4k↓28.8%3[1 PRs](https://github.com/Arkounay/QuickAdminGeneratorBundle/pulls)MITPHPPHP &gt;=8.2.0CI passing

Since Oct 28Pushed 9mo ago4 watchersCompare

[ Source](https://github.com/Arkounay/QuickAdminGeneratorBundle)[ Packagist](https://packagist.org/packages/arkounay/quick-admin-generator-bundle)[ Docs](https://github.com/arkounay/QuickAdminGeneratorBundle)[ RSS](/packages/arkounay-quick-admin-generator-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (30)Versions (143)Used By (0)

QAG - Quick Admin Generator Bundle
==================================

[](#qag---quick-admin-generator-bundle)

[![GitHub release (latest SemVer)](https://camo.githubusercontent.com/0e3c4fdb585e389301d49f50a345f30f3318efb62c0001b4fb81c0adca1bec5b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f61726b6f756e61792f517569636b41646d696e47656e657261746f7242756e646c65)](https://camo.githubusercontent.com/0e3c4fdb585e389301d49f50a345f30f3318efb62c0001b4fb81c0adca1bec5b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f61726b6f756e61792f517569636b41646d696e47656e657261746f7242756e646c65)[![GitHub Workflow Status](https://camo.githubusercontent.com/79159ae9ee744e54bd514ad51bdb75b1ba4733af72fc5e0998f8f392414bcfe4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f61726b6f756e61792f517569636b41646d696e47656e657261746f7242756e646c652f74657374732e79616d6c)](https://camo.githubusercontent.com/79159ae9ee744e54bd514ad51bdb75b1ba4733af72fc5e0998f8f392414bcfe4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f61726b6f756e61792f517569636b41646d696e47656e657261746f7242756e646c652f74657374732e79616d6c)[![MIT License](https://camo.githubusercontent.com/61fd3dca53a02d60c5e3aa556e28b3e21bda7effeec8f3134fa475da5d424270/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f61726b6f756e61792f517569636b41646d696e47656e657261746f7242756e646c65)](https://camo.githubusercontent.com/61fd3dca53a02d60c5e3aa556e28b3e21bda7effeec8f3134fa475da5d424270/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f61726b6f756e61792f517569636b41646d696e47656e657261746f7242756e646c65)[![codecov](https://camo.githubusercontent.com/458c2c4c6dd4c794cfa873fda91e045afa3ef31c4c016d16cb0bdbb0bdbaeb3b/68747470733a2f2f636f6465636f762e696f2f67682f41726b6f756e61792f517569636b41646d696e47656e657261746f7242756e646c652f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d38484f49504136504d49)](https://codecov.io/gh/Arkounay/QuickAdminGeneratorBundle)

QAG is a bundle that allows quick and simple generation of administration backends for Symfony applications using Doctrine.

- [Documentaton](https://arkounay.github.io/QuickAdminGeneratorBundle/#/)
- [Simple online demo](https://qag-demo.outerark.com/)
- [Demo repository](https://github.com/Arkounay/qag-demo)

[![Quick Admin Generator Preview](https://raw.githubusercontent.com/Arkounay/QuickAdminGeneratorBundle/master/docs/images/menu-horizontal.png)](https://raw.githubusercontent.com/Arkounay/QuickAdminGeneratorBundle/master/docs/images/menu-horizontal.png)

Getting started
---------------

[](#getting-started)

Install the dependency:

```
composer require arkounay/quick-admin-generator-bundle

```

also, make sure the following line was added in `config/bundles.php`:

```
Arkounay\Bundle\QuickAdminGeneratorBundle\ArkounayQuickAdminGeneratorBundle::class => ['all' => true],
```

and that assets were installed: `php bin/console assets:install --symlink`.

Finally, add the following route configuration, for example in `config/routes.yaml`:

```
qag_routes:
    resource: 'Arkounay\Bundle\QuickAdminGeneratorBundle\Crud\RouteLoader'
    type: service
    prefix: '/admin'
```

You will probably want to secure the /admin route prefix. To do so, you can add the following line in your `security.yaml`:

```
access_control:
     - { path: ^/admin, roles: ROLE_ADMIN }
```

**and that's it, the bundle is ready to be used.**

Now, you can add a Controller that extends `Arkounay\Bundle\QuickAdminGeneratorBundle\Controller\Crud` to add your first crud.

For example, let's say you have a `News` entity.

!&gt; Make sure your entity implements `__toString()`!

Create a controller, for instance `src/Controller/Admin/NewsController.php`, with the following code:

```
namespace App\Controller\Admin;

use App\Entity\News;
use Arkounay\Bundle\QuickAdminGeneratorBundle\Controller\Crud;

class NewsController extends Crud
{
    public function getEntity(): string
    {
        return News::class;
    }
}
```

and now refresh `/admin` in your browser. You should see a new "News" item that appeared in the menu, and you should now be able to create, edit, and delete news.

If you use the symfony command to display routes `php bin/console debug:router`, you'll see that some routes have been generated for you:

```
qag.category                       ANY      ANY      ANY    /admin/category/
qag.category_create                ANY      ANY      ANY    /admin/category/create
qag.category_delete                ANY      ANY      ANY    /admin/category/delete/{id}/
qag.category_delete_batch          ANY      ANY      ANY    /admin/category/deleteBatch
qag.category_edit                  ANY      ANY      ANY    /admin/category/edit/{id}/
qag.category_export                ANY      ANY      ANY    /admin/category/export
qag.category_filter_form_ajax      ANY      ANY      ANY    /admin/category/filterFormAjax
qag.category_toggle_boolean_post   POST     ANY      ANY    /admin/category/toggleBooleanPost/{id}/

```

Next steps
----------

[](#next-steps)

There are multiple ways to configure and override things in QAG Bundle, depending on the complexity of the project. You can use [attributes](Fields.md#configure-fields-by-attributes) for simple and quick tweaks regarding entity fields, override Twig templates to change the appearance, add listeners to create special rules that apply when parsing entities, and more.

See :

1. [Fields configuration](Fields.md)
    - [Configure Fields by Attributes](Fields.md#configure-fields-by-attributes)
        - [QAG\\Field](Fields.md#qagfield)
        - [QAG\\HideInForm](Fields.md#qaghideinform)
        - [QAG\\HideInList](Fields.md#qaghideinlist)
        - [QAG\\HideInView](Fields.md#qaghideinview)
        - [QAG\\HideInExport](Fields.md#qaghideinexport)
        - [QAG\\Ignore](Fields.md#qagignore)
        - [QAG\\Sort](Fields.md#qagsort)
        - [QAG\\Crud](Fields.md#qagcrud)
    - [Configure Fields by overriding controllers](Fields.md#configure-fields-by-overriding-controllers)
    - [Configure Fields by using Listeners](Fields.md#configure-fields-by-using-listeners)
2. [Controllers, lists, and security](Controllers.md)
    - [Changing the URL prefix](Controllers.md#changing-the-url-prefix)
    - [Metadata](Controllers.md#metadata)
        - [Changing name](Controllers.md#changing-name)
        - [Adding an icon](Controllers.md#adding-an-icon)
        - [Adding a badge with a number](Controllers.md#adding-a-badge-with-a-number)
        - [Adding a description](Controllers.md#adding-a-description)
        - [Responsive mode](Controllers.md#responsive-mode)
    - [Permissions](Controllers.md#permissions)
        - [Security checker](Controllers.md#security-checker)
    - [Filtering the list](Controllers.md#filtering-the-list)
        - [Filtering through Query Builder](Controllers.md#filtering-through-query-builder)
        - [Filtering through Filters](Controllers.md#filtering-through-filters)
    - [Dependency injection](Controllers.md#dependency-injection)
    - [Overriding the default behaviour](Controllers.md#overriding-the-default-behaviour)
3. [Actions and routing](Actions.md)
    - [Normal actions](Actions.md#normal-actions)
    - [Batch actions](Actions.md#batch-actions)
    - [Global actions](Actions.md#global-actions)
    - [Customizing how actions are rendered](Actions.md#customizing-how-actions-are-rendered)
    - [Entity actions display mode (dropdown / expanded)](Actions.md#entity-actions-display-mode-dropdown--expanded)
    - [Routing shorcuts](Actions.md#routing-shorcuts)
4. [Forms](Forms.md)
    - [Overriding the Form Builder directly](Forms.md#overriding-the-form-builder-directly)
    - [Overriding the automatic Form Builder generation by using Event Subscribers](Forms.md#overriding-the-automatic-form-builder-generation-by-using-event-subscribers)
    - [Overriding the form type](Forms.md#overriding-the-form-type)
    - [Collections](Forms.md#collections)
    - [Overriding the form's twig theme](Forms.md#overriding-the-form-s-twig-theme)
    - [Overriding the form's twig theme for a specific entity](Forms.md#overriding-the-form-s-twig-theme-for-a-specific-entity)
    - [Disabling turbo on form submit](Forms.md#disabling-turbo-on-form-submit)
5. [Configuring menu items and their position](Menu.md)
    - [Overriding the menu through yaml](Menu.md#overriding-the-menu-through-yaml)
    - [Overriding the menu by service](Menu.md#overriding-the-menu-by-service)
    - [Overriding the menu through twig](Menu.md#overriding-the-menu-through-twig)
    - [Changing the menu orientation](Menu.md#changing-the-menu-orientation)
    - [Changing the title](Menu.md#changing-the-title)
    - [Enabling global search](Menu.md#enabling-global-search)
    - [Switch to dark Mode](Menu.md#switch-to-dark-mode)
    - [Redirect to a specific route instead of the Dashboard](#redirect-to-a-specific-route-instead-of-the-dashboard)
6. [Overriding the rest of the twigs](Twig.md)
    - [Theme](Twig.md#theme)
    - [Interactive command-line helper](Twig.md#interactive-command-line-helper)
    - [Overriding creation and edition](Twig.md#overriding-creation-and-edition)
    - [Overriding lists](Twig.md#overriding-lists)
    - [Overriding the Dashboard](Twig.md#overriding-the-dashboard)
    - [Adding custom JavaScript](Twig.md#adding-custom-javascript)

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance55

Moderate activity, may be stable

Popularity35

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity84

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 99.6% 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 ~12 days

Recently: every ~123 days

Total

139

Last Release

297d ago

Major Versions

v2.x-dev → 3.0.02022-01-12

3.18.0 → 4.0.02022-10-05

3.18.2 → 4.0.22022-10-07

v3.x-dev → 4.1.02022-10-07

v4.x-dev → 5.0.02023-06-16

PHP version history (4 changes)1.0.0PHP &gt;=7.2.5

3.0.0PHP &gt;=8.0.0

4.4.0PHP &gt;=8.1.0

5.0.0PHP &gt;=8.2.0

### Community

Maintainers

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

---

Top Contributors

[![Arkounay](https://avatars.githubusercontent.com/u/9340719?v=4)](https://github.com/Arkounay "Arkounay (246 commits)")[![jmsche](https://avatars.githubusercontent.com/u/3929498?v=4)](https://github.com/jmsche "jmsche (1 commits)")

---

Tags

adminbackendbundlecrudgeneratorhacktoberfestsymfonysymfonybundlegeneratorcrudadmin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/arkounay-quick-admin-generator-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/arkounay-quick-admin-generator-bundle/health.svg)](https://phpackages.com/packages/arkounay-quick-admin-generator-bundle)
```

###  Alternatives

[sylius/sylius

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

8.4k5.6M651](/packages/sylius-sylius)[easycorp/easyadmin-demo

EasyAdmin Demo Application

145.7k](/packages/easycorp-easyadmin-demo)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[kimai/kimai

Kimai - Time Tracking

4.6k7.4k1](/packages/kimai-kimai)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k16.7M310](/packages/easycorp-easyadmin-bundle)

PHPackages © 2026

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