Port of KnpLabs/DoctrineBehaviors to Nette DI
Supported behaviors:
- Blameable
- Geocodable
- Loggable
- Sluggable
- SoftDeletable
- Translatable
- Timestampable
- Tree
For implementation to entities, check tests.
Via Composer:
$ composer require zenify/doctrine-behaviors
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 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:
Place trait to your entity to ad $createdAt
and $updatedAt
properties:
class Article
{
use Knp\DoctrineBehaviors\Model\Timestampable\Timestampable;
}
composer check-cs
vendor/bin/phpunit
Rules are simple:
- new feature needs tests
- all tests must pass
- 1 feature per PR
We would be happy to merge your feature then!