SULU Backend Bundle
Inspired by doctrine crud generator., (*1)
A Sulu Bundle to make it easier to create a new Backend Bundle., (*2)
With this Bundle it should be possible to create a Backend Bundles without
the knowledge of husky the sulu javascript framework., (*3)
Installation
composer require l91/sulu-backend-bundle
Add Bundle to AdminKernel, (*4)
$bundles[] = new L91\Sulu\Bundle\BackendBundle\L91SuluBackendBundle();
Usage
As example we will create a API for an entity called Vehicle., (*5)
1. Create Entity
First create the doctrine entity with a .orm.xml., (*6)
2. Create Repository
Create a Repository for loading entities from the database.
The BackendRepository have a default implementation for them:, (*7)
Create the functions in your repository or extend from the BackendRepository., (*8)
<?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, (*9)
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:, (*10)
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., (*11)
Command List
You can also just generate a specific part with the following commands:, (*12)
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