blake / laraveldoctrine-hashids
Doctrine 的哈希id类型
v1.0.1
2016-02-27 23:06 UTC
Requires
- php: >=5.5.9
- doctrine/dbal: ~2.5.0
- vinkla/hashids: ~2.0
Suggests
- laravel-doctrine/orm: This is the recommended way of integrated Doctrine with Laravel
This package is not auto-updated.
Last update: 2024-09-14 18:47:40 UTC
README
此包使用vinkla的Hashids 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
作为后备。