mediamonks / doctrine-extensions
Doctrine2 behavioral extensions which allows to transform (encrypt, decrypt, hash) your data automatically
Installs: 124 382
Dependents: 0
Suggesters: 0
Security: 0
Stars: 14
Watchers: 7
Forks: 7
Open Issues: 0
Requires
- php: >=8.1
- gedmo/doctrine-extensions: ^3.0
Requires (Dev)
- defuse/php-encryption: ^2.0
- doctrine/common: >=2.5
- doctrine/orm: >=2.5
- laminas/laminas-crypt: ^3.10
- mockery/mockery: ^1.4
- paragonie/halite: ^v5.0
- phpunit/phpunit: ^9.5
Suggests
- defuse/php-encryption: to use the Defuse Crypto transformers
- doctrine/orm: to use the extensions with the ORM
- laminas/laminas-crypt: to use the Zend Crypt transformers
- paragonie/halite: to use the Libsodium Crypto transformers
README
MediaMonks Doctrine2 behavioral extensions
These extensions add more functionality to Doctrine2.
Breaking changes!
All Zend transformers are now renamed to Laminas.
YAML support has been removed
New features!
Attribute support
Transformable
This extension uses transform and reverseTransform methods to convert data to and from the database. This can for example be used to encrypt a field when it's sent to the database and it will be decrypted when it is retrieved from the database.
The field's value will only be transformed when the value changed which also makes it possible to implement only a transform function for one way transformations like hashing.
Currently, these adapters are provided in order of recommendation:
- HaliteSymmetricTransformer - Encrypt/decrypts the value
- DefuseCryptoEncryptKeyTransformer - Encrypt/decrypts the value
- PhpHashTransformer - Hashes the value
- PhpHmacTransformer - Hashes the value with a key
- LaminasCryptHashTransformer - Hashes the value
- LaminasCryptHmacTransformer - Hashes the value with a key
- LaminasCryptSymmetricTransformer - Encrypts/decrypts the value using openssl (Mcrypt is deprecated), with aes as default algorithm
You can easily create your own transformers by implementing the TransformableInterface
System Requirements
You need:
- PHP >= 8.1
To use the library.
Install
Install this package by using Composer.
$ composer require mediamonks/doctrine-extensions
Security
If you discover any security related issues, please email devmonk@mediamonks.com instead of using the issue tracker.
Documentation
Please refer to the files in the /doc folder.
Credits
This package was inspired by/uses code from gedmo/doctrine-extensions.
License
The MIT License (MIT). Please see License File for more information.