51systems/doctrine-encrypt

该软件包已被弃用且不再维护。没有建议的替代软件包。

该软件包通过生命周期事件对Doctrine字段进行加密和解密。

v6.0.0 2017-03-12 17:38 UTC

This package is not auto-updated.

Last update: 2023-11-12 05:23:05 UTC


README

该软件包通过生命周期事件对Doctrine字段进行加密和解密。Doctrine Encrypt软件包的这个版本具有以下特色:

  • 使用Doctrine内置库进行优秀的注解解析和缓存,以实现卓越的性能
  • 完全透明的字段加密:值只会在数据库中加密,永远不会在值中加密
  • 单元测试

集成

该软件包支持以下集成:

  • Laravel

升级

如果您从旧版本升级,可以在升级指南中找到一些帮助。

安装

composer require 51systems/doctrine-encrypt

配置

Laravel

在服务提供者的boot方法中添加订阅者。

<?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;
}

许可证

本软件包受MIT许可证的约束。

版本

我使用语义版本控制,如此处所述。