A Sulu Bundle to make it easier to create new Backend Bundles.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Admin
Command
Controller
DependencyInjection
Entity
Generator
Manager
Resources
Twig
.styleci.yml
CHANGELOG.md
L91SuluBackendBundle.php
README.md
composer.json

README.md

SULU Backend Bundle

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