Port of KnpLabs/DoctrineBehaviors to Nette
Supports behaviors:
- Blameable
- Geocodable
- Loggable
- Sluggable
- SoftDeletable
- Transltable
- Timestampable
For implementation to entities, check tests.
The best way to install is using Composer.
Add to your composer.json
:
"require": {
"zenify/doctrine-behaviors": "~1.1",
"knplabs/doctrine-behaviors": "@dev"
}
and run:
$ composer update
Register extensions you need in config.neon
:
extensions:
translatable: Zenify\DoctrineBehaviors\DI\TranslatableExtension
- Zenify\DoctrineBehaviors\DI\TimestampableExtension
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 it's translation entity:
class ArticleTranslation
{
use Knp\DoctrineBehaviors\Model\Translatable\Translation;
/**
* @ORM\Column(type="string")
* @var string
*/
public $title;
}
For deeper knowledge see test for:
Place trait to your entity to ad $createdAt
and $updatedAt
properties:
class Article
{
use Knp\DoctrineBehaviors\Model\Timestampable\Timestampable;
}