Loggable

Loggable behavior tracks your record changes and is able to manage versions.

  • Automatic storage of log entries in database
  • Can be nested with other behaviors
  • Objects can be reverted to previous versions
  • Annotation, Yaml and Xml mapping support for extensions

Installation

Add LaravelDoctrine\Extensions\Loggable\LoggableExtension to doctrine.extensions config.

Class annotation

@Gedmo\Mapping\Annotation\Loggable()

This class annotation will store logs to optionally specified logEntryClass.

Annotations Description
logEntryClass optional entity which stores logs

Property annotation

@Gedmo\Mapping\Annotation\Versioned

This property annotation tracks annotated property for changes

<?php
namespace Entity;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @Gedmo\Loggable
 */
class Article
{
    /** 
    * @ORM\Id
    * @ORM\GeneratedValue 
    * @ORM\Column(type="integer")
    */
    protected $id;

   /**
    * @Gedmo\Versioned
    * @ORM\Column(name="title", type="string", length=8)
    */
   protected $title;
}

For full documentation see here.