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
The package supports the following integrations:
- Laravel
If you're upgrading from a previous version you can find some help with that in the upgrading guide.
composer require 51systems/doctrine-encrypt
Add the subscriber in the boot
method of a service provider.
<?php
$encrypter = $this->app->make(\Illuminate\Contracts\Encryption\Encrypter::class);
$subscriber = new DoctrineEncryptSubscriber(
new \Doctrine\Common\Annotations\AnnotationReader,
new \DoctrineEncrypt\Encryptors\LaravelEncryptor($encrypter)
);
$eventManager = $em->getEventManager();
$eventManager->addEventSubscriber($subscriber);
<?php
namespace Your\Namespace;
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
*/
private $id;
/**
* @ORM\Column(type="text")
* @Encrypted
* @var string
*/
private $secretData;
}
This bundle is under the MIT license.
I'm using Semantic Versioning like described here.