zenify/doctrine-behaviors

This package is abandoned and no longer maintained. The author suggests using the nettrine/extensions package instead.

Integration of KnpLabs/DoctrineBehaviors to Nette\DI

v4.2 2016-12-28 23:52 UTC

README

Build Status Quality Score Code Coverage Downloads total Latest stable

Port of KnpLabs/DoctrineBehaviors to Nette DI

Supported behaviors:

  • Blameable
  • Geocodable
  • Loggable
  • Sluggable
  • SoftDeletable
  • Translatable
  • Timestampable
  • Tree

For implementation to entities, check tests.

Install

Via Composer:

$ composer require zenify/doctrine-behaviors

Register extensions you need in config.neon:

extensions:
    translatable: Zenify\DoctrineBehaviors\DI\TranslatableExtension
    - Zenify\DoctrineBehaviors\DI\TimestampableExtension

Usage

Translatable

Setup your translator locale callback in config.neon:

translatable:
    currentLocaleCallable: [@Translator, getLocale]

Place trait to your entity:

class Article
{

    use Knp\DoctrineBehaviors\Model\Translatable\Translatable;
    // returns translated property for $article->getTitle() or $article->title
    use Zenify\DoctrineBehaviors\Entities\Attributes\Translatable;

}

And its translation entity:

class ArticleTranslation
{

    use Knp\DoctrineBehaviors\Model\Translatable\Translation;

    /**
     * @ORM\Column(type="string")
     * @var string
     */
    public $title;

}

For deeper knowledge see test for:

Timestampable

Place trait to your entity to ad $createdAt and $updatedAt properties:

class Article
{

    use Knp\DoctrineBehaviors\Model\Timestampable\Timestampable;

}

Testing

composer check-cs
vendor/bin/phpunit

Contributing

Rules are simple:

  • new feature needs tests
  • all tests must pass
  • 1 feature per PR

We would be happy to merge your feature then!