{"id":19638446,"url":"https://github.com/arkounay/quickadmingeneratorbundle","last_synced_at":"2025-10-15T03:21:56.717Z","repository":{"id":41409411,"uuid":"307954568","full_name":"Arkounay/QuickAdminGeneratorBundle","owner":"Arkounay","description":"QAG - Quick Admin Generator Bundle for Symfony \u003e= 5, a bundle that generates cruds admin for Symfony applications using Doctrine","archived":false,"fork":false,"pushed_at":"2025-07-25T21:01:04.000Z","size":5545,"stargazers_count":24,"open_issues_count":3,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-27T14:57:22.959Z","etag":null,"topics":["admin","backend","bundle","crud","generator","hacktoberfest","symfony"],"latest_commit_sha":null,"homepage":"https://arkounay.github.io/QuickAdminGeneratorBundle/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Arkounay.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-10-28T08:40:50.000Z","updated_at":"2025-09-10T15:56:14.000Z","dependencies_parsed_at":"2023-02-15T13:01:32.173Z","dependency_job_id":"2eb7aedf-63f5-4fa8-8d41-d8094a5d67b5","html_url":"https://github.com/Arkounay/QuickAdminGeneratorBundle","commit_stats":{"total_commits":211,"total_committers":2,"mean_commits":105.5,"dds":0.004739336492891044,"last_synced_commit":"3e41cbcef42bdb50096546dc8977fef1902ce72c"},"previous_names":[],"tags_count":135,"template":false,"template_full_name":null,"purl":"pkg:github/Arkounay/QuickAdminGeneratorBundle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arkounay%2FQuickAdminGeneratorBundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arkounay%2FQuickAdminGeneratorBundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arkounay%2FQuickAdminGeneratorBundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arkounay%2FQuickAdminGeneratorBundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Arkounay","download_url":"https://codeload.github.com/Arkounay/QuickAdminGeneratorBundle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arkounay%2FQuickAdminGeneratorBundle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279042500,"owners_count":26091262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-15T02:00:07.814Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin","backend","bundle","crud","generator","hacktoberfest","symfony"],"created_at":"2024-11-11T12:38:45.733Z","updated_at":"2025-10-15T03:21:56.712Z","avatar_url":"https://github.com/Arkounay.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QAG - Quick Admin Generator Bundle\n\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/arkounay/QuickAdminGeneratorBundle)\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/arkounay/QuickAdminGeneratorBundle/tests.yaml)\n![MIT License](https://img.shields.io/github/license/arkounay/QuickAdminGeneratorBundle)\n[![codecov](https://codecov.io/gh/Arkounay/QuickAdminGeneratorBundle/branch/master/graph/badge.svg?token=8HOIPA6PMI)](https://codecov.io/gh/Arkounay/QuickAdminGeneratorBundle)\n\n\nQAG is a bundle that allows quick and simple generation of administration backends for Symfony applications using Doctrine.\n\n- [Documentaton](https://arkounay.github.io/QuickAdminGeneratorBundle/#/)\n- [Simple online demo](https://qag-demo.outerark.com/) \n- [Demo repository](https://github.com/Arkounay/qag-demo)\n\n![Quick Admin Generator Preview](https://raw.githubusercontent.com/Arkounay/QuickAdminGeneratorBundle/master/docs/images/menu-horizontal.png)\n\n## Getting started\n\nInstall the dependency:\n\n```\ncomposer require arkounay/quick-admin-generator-bundle\n```\n\nalso, make sure the following line was added in `config/bundles.php`:\n\n```php\nArkounay\\Bundle\\QuickAdminGeneratorBundle\\ArkounayQuickAdminGeneratorBundle::class =\u003e ['all' =\u003e true],\n```\n\nand that assets were installed: `php bin/console assets:install --symlink`.\n\n\nFinally, add the following route configuration, for example in `config/routes.yaml`:\n\n```yaml\nqag_routes:\n    resource: 'Arkounay\\Bundle\\QuickAdminGeneratorBundle\\Crud\\RouteLoader'\n    type: service\n    prefix: '/admin'\n```\n\nYou will probably want to secure the /admin route prefix. To do so, you can add the following line in your `security.yaml`:\n\n```yaml\naccess_control:\n     - { path: ^/admin, roles: ROLE_ADMIN }\n```\n\n**and that's it, the bundle is ready to be used.**\n\nNow, you can add a Controller that extends `Arkounay\\Bundle\\QuickAdminGeneratorBundle\\Controller\\Crud` to add your first crud.\n\nFor example, let's say you have a `News` entity.\n\n!\u003e Make sure your entity implements `__toString()`!\n\nCreate a controller, for instance `src/Controller/Admin/NewsController.php`, with the following code:\n\n```php\nnamespace App\\Controller\\Admin;\n\nuse App\\Entity\\News;\nuse Arkounay\\Bundle\\QuickAdminGeneratorBundle\\Controller\\Crud;\n\nclass NewsController extends Crud\n{\n    public function getEntity(): string\n    {\n        return News::class;\n    }\n}\n```\n    \nand 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.\n\nIf you use the symfony command to display routes `php bin/console debug:router`, you'll see that some routes have been generated for you:\n```\nqag.category                       ANY      ANY      ANY    /admin/category/                  \nqag.category_create                ANY      ANY      ANY    /admin/category/create            \nqag.category_delete                ANY      ANY      ANY    /admin/category/delete/{id}/      \nqag.category_delete_batch          ANY      ANY      ANY    /admin/category/deleteBatch      \nqag.category_edit                  ANY      ANY      ANY    /admin/category/edit/{id}/        \nqag.category_export                ANY      ANY      ANY    /admin/category/export\nqag.category_filter_form_ajax      ANY      ANY      ANY    /admin/category/filterFormAjax\nqag.category_toggle_boolean_post   POST     ANY      ANY    /admin/category/toggleBooleanPost/{id}/\n```\n\n## Next steps\n\nThere are multiple ways to configure and override things in QAG Bundle, depending on the complexity of the project.\nYou 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.\n\nSee :\n1) [Fields configuration](Fields.md)\n    * [Configure Fields by Attributes](Fields.md#configure-fields-by-attributes)\n      - [QAG\\Field](Fields.md#qagfield)\n      - [QAG\\HideInForm](Fields.md#qaghideinform)\n      - [QAG\\HideInList](Fields.md#qaghideinlist)\n      - [QAG\\HideInView](Fields.md#qaghideinview)\n      - [QAG\\HideInExport](Fields.md#qaghideinexport)\n      - [QAG\\Ignore](Fields.md#qagignore)\n      - [QAG\\Sort](Fields.md#qagsort)\n      - [QAG\\Crud](Fields.md#qagcrud)\n    * [Configure Fields by overriding controllers](Fields.md#configure-fields-by-overriding-controllers)\n    * [Configure Fields by using Listeners](Fields.md#configure-fields-by-using-listeners)\n2) [Controllers, lists, and security](Controllers.md)\n   * [Changing the URL prefix](Controllers.md#changing-the-url-prefix)\n   * [Metadata](Controllers.md#metadata)\n       + [Changing name](Controllers.md#changing-name)\n       + [Adding an icon](Controllers.md#adding-an-icon)\n       + [Adding a badge with a number](Controllers.md#adding-a-badge-with-a-number)\n       + [Adding a description](Controllers.md#adding-a-description)\n       + [Responsive mode](Controllers.md#responsive-mode)\n   * [Permissions](Controllers.md#permissions)\n       + [Security checker](Controllers.md#security-checker)\n   * [Filtering the list](Controllers.md#filtering-the-list)\n       + [Filtering through Query Builder](Controllers.md#filtering-through-query-builder)\n       + [Filtering through Filters](Controllers.md#filtering-through-filters)\n   * [Dependency injection](Controllers.md#dependency-injection)\n   * [Overriding the default behaviour](Controllers.md#overriding-the-default-behaviour)\n3) [Actions and routing](Actions.md)\n   - [Normal actions](Actions.md#normal-actions)\n   - [Batch actions](Actions.md#batch-actions)\n   - [Global actions](Actions.md#global-actions)\n   - [Customizing how actions are rendered](Actions.md#customizing-how-actions-are-rendered)\n   - [Entity actions display mode (dropdown / expanded)](Actions.md#entity-actions-display-mode-dropdown--expanded)\n   - [Routing shorcuts](Actions.md#routing-shorcuts)\n4) [Forms](Forms.md)\n   * [Overriding the Form Builder directly](Forms.md#overriding-the-form-builder-directly)\n   * [Overriding the automatic Form Builder generation by using Event Subscribers](Forms.md#overriding-the-automatic-form-builder-generation-by-using-event-subscribers)\n   * [Overriding the form type](Forms.md#overriding-the-form-type)\n   * [Collections](Forms.md#collections)\n   * [Overriding the form's twig theme](Forms.md#overriding-the-form-s-twig-theme)\n   * [Overriding the form's twig theme for a specific entity](Forms.md#overriding-the-form-s-twig-theme-for-a-specific-entity)\n   * [Disabling turbo on form submit](Forms.md#disabling-turbo-on-form-submit)\n5) [Configuring menu items and their position](Menu.md)\n   * [Overriding the menu through yaml](Menu.md#overriding-the-menu-through-yaml)\n   * [Overriding the menu by service](Menu.md#overriding-the-menu-by-service)\n   * [Overriding the menu through twig](Menu.md#overriding-the-menu-through-twig)\n   * [Changing the menu orientation](Menu.md#changing-the-menu-orientation)\n   * [Changing the title](Menu.md#changing-the-title)\n   * [Enabling global search](Menu.md#enabling-global-search)\n   * [Switch to dark Mode](Menu.md#switch-to-dark-mode)\n   * [Redirect to a specific route instead of the Dashboard](#redirect-to-a-specific-route-instead-of-the-dashboard)\n6) [Overriding the rest of the twigs](Twig.md)\n   * [Theme](Twig.md#theme)\n   * [Interactive command-line helper](Twig.md#interactive-command-line-helper)\n   * [Overriding creation and edition](Twig.md#overriding-creation-and-edition)\n   * [Overriding lists](Twig.md#overriding-lists)\n   * [Overriding the Dashboard](Twig.md#overriding-the-dashboard)\n   * [Adding custom JavaScript](Twig.md#adding-custom-javascript)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkounay%2Fquickadmingeneratorbundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkounay%2Fquickadmingeneratorbundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkounay%2Fquickadmingeneratorbundle/lists"}