clear01 / doctrine-behaviors
Integration of KnpLabs/DoctrineBehaviors to Nette\DI
Installs: 6 558
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 12
pkg:composer/clear01/doctrine-behaviors
Requires
- php: ^7.0
 - kdyby/events: ~3.0
 - knplabs/doctrine-behaviors: 1.4.0
 - tracy/tracy: ~2.4
 
Requires (Dev)
- kdyby/doctrine: ~3.1
 - nette/bootstrap: ~2.4
 - nette/di: ~2.4
 - nette/http: ~2.4
 - nette/reflection: ~2.4
 - nette/security: ~2.4
 - phpunit/phpunit: ^5.6
 - zenify/coding-standard: ^4.0
 
This package is auto-updated.
Last update: 2025-10-09 16:33:35 UTC
README
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!