dev-master
9999999-dev http://symfonylab.plBlameable behaviour for Doctrine2
MIT
The Requires
by Contributors
doctrine2 blameable behaviours
Blameable behaviour for Doctrine2
1. Add to deps [PSSDoctrineExtensionsBundle] git=https://github.com/PolishSymfonyCommunity/PSSDoctrineExtensionsBundle.git target=/bundles/PSS/Bundle/DoctrineExtensionsBundle 2. Add PSS namespace to autoloader // app/autoload.php $loader->registerNamespaces(array( 'PSS' => __DIR__.'/../vendor/bundles', // your other namespaces )); 3. Add PSSDoctrineExtensionsBundle to your application's kernel // app/AppKernel.php public function registerBundles() { return array( // ... new PSS\Bundle\DoctrineExtensionsBundle\PSSDoctrineExtensionsBundle(), // ... ); }
# app/config/config.yml pss_doctrine_extensions: blameable: user_class: Acme\DemoBundle\Entity\User # your User class store_object: true # Sets the user object instead of userId - usefull to keep relations drivers: orm: true mongodb: true
ORM example:, (*1)
<?php namespace Acme\DemoBundle\Entity; use Doctrine\ORM\Mapping as ORM; use PSS\Bundle\DoctrineExtensionsBundle\Annotation as PSS; /** * * @ORM\Entity * @ORM\Table * * @PSS\Blameable() */ class Page { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") * * @var integer $id */ protected $id; /** * @ORM\Column(name="content", type="string", length=255, nullable=true) * * @var string $name */ protected $content; /** * @ORM\Column(type="integer", nullable=true) * * @var type $creator */ protected $creator; /** * @ORM\Column(type="integer", nullable=true) * * @var type $updater */ protected $updater; public function getContent() { return $this->content; } public function setContent($value) { $this->content = $value; } public function getUpdater() { return $this->updater; } public function setUpdater($value) { $this->updater = $value; } public function getCreator() { return $this->creator; } public function setCreator($value) { $this->creator = $value; } }
ODM example with custom userClass, creator, updater property:, (*2)
<?php namespace Acme\DemoBundle\Document; use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; use PSS\Bundle\DoctrineExtensionsBundle\Annotation as PSS; /** * @MongoDB\Document * * @PSS\Blameable(userClass="Acme\DemoBundle\Document\User", creator="creator_id", updater="updater_id") */ class Page { /** * @MongoDB\Id */ protected $id; /** * @MongoDB\String */ protected $content; /** * @MongoDB\Int * * @var type $creator_id */ protected $creator_id; /** * @MongoDB\Int * * @var type $updater_id */ protected $updater_id; public function getContent() { return $this->content; } public function setContent($value) { $this->content = $value; } public function getUpdater() { return $this->updater_id; } public function setUpdater($value) { $this->updater_id = $value; } public function getCreator() { return $this->creator_id; } public function setCreator($value) { $this->creator_id = $value; } }
Blameable behaviour for Doctrine2
MIT
doctrine2 blameable behaviours