Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vincentchalnot/sidusadminbundle
Simple and extendable action-based admin management with built-in routing generation
https://github.com/vincentchalnot/sidusadminbundle
Last synced: 4 days ago
JSON representation
Simple and extendable action-based admin management with built-in routing generation
- Host: GitHub
- URL: https://github.com/vincentchalnot/sidusadminbundle
- Owner: VincentChalnot
- License: mit
- Created: 2016-02-23T18:40:10.000Z (over 8 years ago)
- Default Branch: v5.x
- Last Pushed: 2024-01-25T15:03:24.000Z (10 months ago)
- Last Synced: 2024-10-08T19:25:20.826Z (about 1 month ago)
- Language: PHP
- Size: 159 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Sidus/AdminBundle
================The missing link between the controllers, the router component, the forms and the entities.
Example in twig:
```twig
List
Edit
```## Warning
This bundle requires the security component of Symfony, it will enforce access to any entity using the voter.
This bundle is easier to use with Doctrine, it can still be used for non-doctrine entities.## Configuration
Simple example:
```yaml
sidus_admin:
configurations:
post:
entity: MyBundle\Entity\Post # Class name of your entity
prefix: /post # Routing prefix
controller_pattern:
- 'Sidus\AdminBundle\Action\{{Action}}Action' # Full controller reference
template_pattern:
- '@SidusAdmin/Action/{{action}}.{{format}}.twig'
actions:
list:
path: /list # Routing path
edit:
path: /edit/{id}
form_type: MyBundle\Form\Type\EditPostType # Form type to use in controller
```### Configuration reference
All values are the default one except when specified otherwise.
```yaml
sidus_admin:
admin_class: Sidus\AdminBundle\Model\Admin
action_class: Sidus\AdminBundle\Model\Action
configurations:
:
entity: ~ # REQUIRED: The fully qualified class name of the entity (or the Doctrine's shorter reference)
prefix: ~ # REQUIRED: Routing prefix for all actions
controller_pattern: [] # The controller reference that will be used to generate routing
# Available interpolation variables are:
# {{admin}} lowercase first letter admin code
# {{Admin}} uppercase first letter admin code
# {{action}} lowercase first letter action code
# {{Action}} uppercase first letter action code
# If you don't set any controller_pattern you will need to set the _controller attribute in the defaults of
# each action.
template_pattern: [] # The template pattern
action_class: # Defaults to main action_class
options: {} # You can put anything here
permissions: [ ROLE_USER ] # List of permissions required to access the whole admin
actions:
: # The action code needs to match the controller's method name without the "Action" suffix
form_type: ~ # Useful in combination with AbstractAdminController::getForm($request, $data)
form_options: ~ # Static form options
template: ~ # Computed by the TemplateResolver using template_pattern if null
permissions: [ ROLE_USER ] # List of permissions required to access the action
# All the following options are used to generate the route for the routing component
# See Symfony doc here: http://symfony.com/doc/current/routing.html
path: ~ # REQUIRED
defaults: ~
requirements: ~
options: ~
host: ~
schemes: ~
methods: ~
condition: ~
```## Usage
### Generating routes
When routing to an entity, the AdminRouter component will try to fetch missing route parameters from the routing context
and then from the entity itself, meaning if you name your route parameters accordingly to your entity properties, you
won't need to pass any parameter manually.#### PHP
```php
generateAdminPath('post', 'list');
$adminRouter->generateEntityPath($entity, 'edit');
```When dealing with multiple admins for a single class, you can use this function instead:
```php
generateAdminEntityPath('post', $entity, 'edit');
```#### Twig
```twig
List
Edit
```When dealing with multiple admins for a single class, you can use this function instead:
```twig
Edit
```#### Additional optional arguments
For each method, you can pass additional route parameters in the argument just after the action name, you can also set
the UrlGeneratorInterface reference type (absolute, relative...).
```php
generateAdminEntityPath(
'post',
$entity,
'edit',
['parametrer' => 'value'],
UrlGeneratorInterface::ABSOLUTE_PATH
);
```