blast-project/base-entities-bundle

Base behaviors for Doctrine Entities in Libre Informatique Symfony2 projects

0.6.4 2017-11-03 14:56 UTC

This package is not auto-updated.

Last update: 2024-05-25 17:33:28 UTC


README

Build Status Coverage Status License

Latest Stable Version Latest Unstable Version Total Downloads

This bundle provides some tools for a better integration of LibrinfoDoctrineBundle behaviours in Sonata Admin

Installation

Prequiresites

  • having a working Symfony2 environment
  • having created a working Symfony2 app (including your DB and your DB link)
  • having composer installed (here in /usr/local/bin/composer, with /usr/local/bin in the path)

Downloading

$ composer require libre-informatique/base-entities-bundle dev-master

Adding the bundle in your app

Edit your app/AppKernel.php file and add your "libre-informatique/base-entities-bundle" :

    // app/AppKernel.php
    // ...
    public function registerBundles()
    {
        $bundles = array(
            // ...

            // The libre-informatique bundles
            new Blast\BaseEntitiesBundle\BlastCoreBundle(),
            new Blast\BaseEntitiesBundle\LibrinfoDoctrineBundle(),
            new Blast\BaseEntitiesBundle\BlastBaseEntitiesBundle(),

            // your personal bundles
        );
    }

Configuring the bundle

Activate the listeners you need in your application (add those lines to app/config/config.yml) :

# Enable LibrinfoDocrineBundle event listeners
librinfo_doctrine:
    orm:
        default:
            naming: true
            guidable: true
            timestampable: true
            addressable: true
            treeable: true
            nameable: true
            labelable: true
            emailable: true
            descriptible: true
            searchable: true
            loggable: true
    # List of entity search-able indexed fields
    entity_search_indexes:
        Me\MyBundle\Entity\MyEntity:
            fields:
                - name
                - fulltextName
                - firstname
                - lastname
                - description
                - email
                - url

Add/remove the needed behaviours for each orm connection used by your application.

Under entity_search_indexes key, you can set search indexes for each entity that should be indexable.

Learn how to use the bundle

Doctrine Behaviors provided by the bundle

  • naming: provides a database table naming based on your vendor / bundle / entity
  • guidable: provides GUID primary keys to your entities
  • timestampable: provides createdAt / updatedAt fields and doctrine listeners to your entities
  • addressable: provides address fields to your entities (address, city, zip, country...)
  • treeable: provides tree structure to your entities
  • nameable: provides a name field to your entities
  • labelable: provides a label field to your entities
  • emailable: provides email related fields to your entities
  • descriptible: provides a description field to your entities
  • searchable: provides a search index based on a selection of fields
  • loggable: tracks your entities changes and is able to manage versions

Learn how to use them, how they work, and by extension learn how to create new behaviors shaped to your needs, reading the specific documentation.

Learn how to use the libre-informatique/base-entities-bundle

Specific Form Types

The bundle provides some form types, learn more about this, reading the specific documentation.