nepda / doctrine-encrypt
This package is abandoned and no longer maintained.
No replacement package was suggested.
Package encrypts and decrypts Doctrine fields through life cycle events.
v7.0.1
2017-11-24 11:12 UTC
Requires
- php: >=7.1
- ext-openssl: *
- doctrine/orm: ~2.5
Requires (Dev)
- phpunit/phpunit: ~5.7
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Package encrypts and decrypts Doctrine fields through life cycle events. This version of the Doctrine Encrypt package distinguishes itself with the following features:
- Superior Annotation parsing & caching using Doctrine's built in libraries for superior performance
- Totally transparent field encryption: the value will only be encrypted in the database, never in the value
- Unit testing
Tests
Tests currently run with PHP 7.1, 7.2
Installation
Add nepda/doctrine-encrypt to your Composer manifest.
{ "require": { "nepda/doctrine-encrypt": "~7.0" } }
Configuration
Using ZF2
Check out the doctrine-encrypt-module at https://github.com/nepda/doctrine-encrypt-module
Manually
Add the event subscriber to your entity manager's event manager. Assuming $em is your configured entity manager:
<?php //You should pick your own hexadecimal secret $secret = pack("H*", "dda8e5b978e05346f08b312a8c2eac03670bb5661097f8bc13212c31be66384c"); $subscriber = new DoctrineEncryptSubscriber( new \Doctrine\Common\Annotations\AnnotationReader, new \DoctrineEncrypt\Encryptors\AES256Encryptor($secret) ); $eventManager = $em->getEventManager(); $eventManager->addEventSubscriber($encrypt_subscriber);
Usage
<?php namespace Your\CoolNamespace; use Doctrine\ORM\Mapping as ORM; use DoctrineEncrypt\Configuration\Encrypted; /** * @ORM\Entity */ class Entity { /** * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") * @ORM\Column(type="integer") * @var int */ protected $id; /** * @ORM\Column(type="text") * @Encrypted * @var string */ protected $secret_data; }
License
This bundle is under the MIT license. See the complete license in the bundle
Versions
I'm using Semantic Versioning like described here.