Elao/ElaoAdminBundle

Name: ElaoAdminBundle

Owner: Elao

Description: Elao Admin Bundle

Created: 2013-12-04 08:05:17.0

Updated: 2017-05-21 05:09:08.0

Pushed: 2017-02-05 11:49:23.0

Homepage:

Size: 166

Language: PHP

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Elao Admin Bundle

Write your controller once, use it for all your models.

What?

The AdminBundle helps you define reusable Actions that can be defined as route controllers for any model.

Why?

The AdminBundle improves your productivity when implementing similar controller behavior for several models, such as CRUD back-end.

How?

The AdminBundle declares Actions as abstract services, instanciates and configures one instance for each model and register the corresponding route in the Symfony router.

You just need to say “I want a list of user.” and the AdminBundle register a /users route that run a ListAction instance configured to handle the User model.

Design goals

The AdminBundle is meant to improve your productivity and remain flexible and extendable.

Installation

Require the bundle in Composer:

mposer require elao/admin-bundle

Install the bundle in your AppKernel:

p
pp/AppKernel.php

ic function registerBundles()

$bundles = [
    // ...
    new Elao\Bundle\AdminBundle\ElaoAdminBundle(),
];

Import the rounting in your routing.yml configuration file:

pp/config/routing.yml
_admin_bundle:
resource: "@ElaoAdminBundle/Resources/config/routing.yml"
prefix:   / # You can prefix all actions here
Usage

Use a set of Actions:

Or create your own set of actions!

Configuration

Configure some actions in your config.yml:

p/config/config.yml
_admin:
administrations:
    # Where 'name' is the name of the administration
    name:
        # Administration-level options (optional)
        foo: true
        # (required)
        actions:
            # Where 'alias' is the alias of the action
            alias:
                # Where 'action_type' is a registered action type.
                action_type:
                    # Every action has its own options

Here's an example with some action provided by the ElaoHtmlActionBundle.

p/config/config.yml
_admin:
administrations:
    post: # The name of the administration (usualy, the model name)
        repository: app.repository.post # The repository to use to access the model
        actions:
            list:               # A "list" action,
                html_list: ~    # that use default configuration for "html_list".

            create:             # A "create" action,
                html_create:    # that use "html_create" and specify the form to use.
                    form: BlogBundle\Form\PostType

            update:             # A "update" action,
                html_update:    # that use "html_update" and specify the form to use.
                    form: BlogBundle\Form\PostType

            read:               # A "read" action,
                html_read: ~    # that use default configuration for "html_read".

            delete:             # A "delete" action,
                html_delete:    # that use "html_delete" and adds a security restriction.
                    security: has_role('ROLE_ADMIN')

This config will generate the following routes:

| Name | Method | Scheme | Host | Path | | ———– | ——– | —— | —- | —————— | | post_list | GET | ANY | ANY | /posts | | post_create | GET/POST | ANY | ANY | /posts/new | | post_update | GET/POST | ANY | ANY | /posts/{id}/edit | | post_read | GET | ANY | ANY | /posts/{id} | | post_delete | GET/POST | ANY | ANY | /posts/{id}/delete |

Configuration detail

To get the full detail and default values for yout administration just run:

bin/console debug:config ElaoAdminBundle

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.