bentools/user-aware-command-bundle

Provides a user value to Doctrine Entities that implements Gedmo Blameable when using Console commands.

Installs: 14 283

Dependents: 0

Suggesters: 0

Stars: 0

Watchers: 1

Forks: 0

Type:symfony-bundle

v1.0.1 2016-08-23 12:36 UTC

README

This Symfony bundle provides a user value to Doctrine Entities that implements Gedmo Blameable when using Console commands.

Installation

composer require bentools/user-aware-command-bundle

Then, enable the bundle into Symfony's AppKernel.php:

# app/AppKernel.php
class AppKernel extends Kernel
{
    public function registerBundles() 
    {
        // ...
        $bundles[] = new BenTools\UserAwareCommandBundle\UserAwareCommandBundle();
    }
}

Usage

The bundle just works out of the box, provided you already have the Blameable extension configured and working on your entities. Your console command just has to implement BenTools\UserAwareCommandBundle\Model\UserAwareInterface, which contains no method:

namespace AppBundle\Command;

use BenTools\UserAwareCommandBundle\Model\UserAwareInterface;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class DoMyCommand extends Command implements UserAwareInterface 
{
    protected function execute(InputInterface $input, OutputInterface $output) {
	    // ...
	}
}

By default, the bundle will bind the System user to your createdBy / updatedBy properties.

You can change this user per command run with the --user option:

php bin/console do:mycommand --user Ben

Advanced configuration

# app/config.yml

user_aware_command:
    user_name: System # change default user
    option_name: user # change default command option
    option_shortcut: u # set option shortcut