Home

Awesome

IsmaAmbrosiGeneratorBundle

Build Status Total Downloads Latest Stable Version Latest Unstable Version SensioLabsInsight

This bundle extends the commands provided by SensioGeneratorBundle, adding a MongoDB document generator and CRUD generators for those MongoDB documents.

Installation

Add the bundle to your project.

Add the requirement to composer:

$ php composer.phar require ismaambrosi/generator-bundle

You will also need to install the DoctrineMongoDBBundle. The instructions on how to install it are available in the Symfony2 documentation.

Enable the bundle in your kernel

<?php
// app/AppKernel.php

public function registerBundles()
{
    // ...
    if (in_array($this->getEnvironment(), array('dev', 'test'))) {
        // ...
        $bundles[] = new IsmaAmbrosi\Bundle\GeneratorBundle\IsmaAmbrosiGeneratorBundle();
    }
}

It is recommended to disable this bundle for the production environment.

Commands

This bundle contains three commands that will allow you to generate code for documents, forms and CRUD controllers. These commands can be executed either on interactive mode or manual mode. I would recommend you to use the interactive mode.

Generating ODM documents

The first command allows to generate the document classes.

Examples:

$ php app/console doctrine:mongodb:generate:document
$ php app/console doctrine:mongodb:generate:document \
--document=AcmeBlogBundle:Blog/Post \
--with-repository

Generating forms

With the second command we can generate the form type classes, used by the form component.

Example:

$ php app/console doctrine:mongodb:generate:form AcmeBlogBundle:Post

Generating the CRUD

The last command generates the CRUD controllers, with read-only actions to handle the documents that were generated previously. It also allows to include the write actions, for creating, updating and deleting documents.

Examples:

$ php app/console doctrine:mongodb:generate:crud
# Specifying the document and the routing prefix
$ php app/console doctrine:mongodb:generate:crud \
--document=AcmeBlogBundle:Post \
--route-prefix=post_admin
# Specifying the document, routing and write-actions
$ php app/console doctrine:mongodb:generate:crud \
--document=AcmeBlogBundle:Post \
--route-prefix=post_admin --with-write