blake/laraveldoctrine-hashids

Doctrine 的哈希id类型

v1.0.1 2016-02-27 23:06 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:47:40 UTC


README

此包使用vinklaHashids for Laravel桥接器,以提供一个使用Hashids对整数ID进行混淆的Doctrine类型。

安装

在安装此包之前,请安装并配置vinkla/hashids包。

使用composer要求此包

composer require "blake/laraveldoctrine-hashids:~1.0"

下一步是启用Doctrine类型。如果你使用的是laravel-doctrine/orm包,请将以下内容添加到你的config/doctrine.php文件中

    'custom_types'              => [
        // ...
        'hashid' => Blake\Dbal\Types\HashidType::class,
    ],

用法

在实体中使用整数的地方,你可以安全地替换为hashid类型

<?php

namespace App\Entities;

use Doctrine\ORM\Mapping AS ORM;

/**
 * @ORM\Entity
 * @ORM\Table
 */
class User
{
    /**
     * @var string
     * @ORM\Id
     * @ORM\Column(type="hashid", nullable=false)
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;
    
    // ...
}

与实体管理器的交互正如你所期望的那样。只需替换你原本使用愚蠢整数ID的地方,使用它们的混淆版本即可

$user = EntityManager::find(User::class, 'dlGRfgH73');

ID在到达数据库之前会被解码,在离开时会进行编码。这允许你使用高性能的整数ID,同时混淆有关数据库的细节,并使指向对象的URL看起来更美观。

配置

vinkla/hashids允许你设置多个"连接"。此包将查找一个doctrine连接,如果不存在,将使用main作为后备。