l91 / sulu-backend-bundle
Sulu Bundle for easier create your own backend bundles.
Installs: 6 103
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 2
Open Issues: 23
Type:sulu-bundle
Requires
- php: >=5.5
This package is auto-updated.
Last update: 2024-10-21 21:00:38 UTC
README
Inspired by doctrine crud generator.
A Sulu Bundle to make it easier to create a new Backend Bundle.
With this Bundle it should be possible to create a Backend Bundles without the knowledge of husky the sulu javascript framework.
Installation
composer require l91/sulu-backend-bundle
Add Bundle to AdminKernel
$bundles[] = new L91\Sulu\Bundle\BackendBundle\L91SuluBackendBundle();
Usage
As example we will create a API for an entity called Vehicle.
1. Create Entity
First create the doctrine entity with a .orm.xml
.
2. Create Repository
Create a Repository for loading entities from the database.
The BackendRepository
have a default implementation for them:
findById
findAll
count
Create the functions in your repository or extend from the BackendRepository.
<?php namespace YourBundle\Entity\Repository; use L91\Sulu\Bundle\BackendBundle\Entity\Repository\BackendRepository; class VehicleRepository extends BackendRepository { // Add your custom repository functions here }
Register Repository
services: your.repository.vehicle: class: YourBundle\Entity\VehicleRepository factory_service: doctrine.orm.entity_manager factory_method: getRepository arguments: - YourBundle\Entity\Vehicle
4. Generate Controller, Manager, Admin Navigation or Tab, JSBundle
You can easily generate them with following command:
app/console l91:sulu:backend:generate:crud YourBundle:Vehicle --route-format yml --service-format yml
Add --extended
to have no requirements to this Bundle. This will generate a complete own Controller, Manager, ...
when use the extended generation you could remove this bundle from your requirements after you generated your bundle.
Command List
You can also just generate a specific part with the following commands:
app/console l91:sulu:backend:generate:controller
app/console l91:sulu:backend:generate:manager
app/console l91:sulu:backend:generate:admin
app/console l91:sulu:backend:generate:js
app/console l91:sulu:backend:generate:navigation-provider