mitch/hashids

此包的最新版本(1.0)没有可用的许可证信息。

Laravel 的 Hashids 包

1.0 2014-09-17 22:06 UTC

This package is not auto-updated.

Last update: 2024-09-23 11:32:44 UTC


README

本包使用了由 hashids.org 创建的类。

从数字生成哈希值,例如 YouTube 或 Bitly。当您不想向用户暴露数据库 ID 时,请使用 hashids。

安装

首先通过 Composer 安装此包。编辑您的项目 composer.json 文件以要求 mitch/hashids

"require": {
  "mitch/hashids": "1.x"
}

然后使用 Terminal 中的 Composer 更新您的项目

php composer.phar update

安装完包后,您需要添加服务提供者。打开您的 app/config/app.php 配置文件,并在 providers 数组中添加一个新项。

'Mitch\Hashids\HashidsServiceProvider'

执行此操作后,您还需要添加一个别名。在您的 app/config/app.php 文件中,将以下内容添加到 aliases 数组中。

'Hashids' => 'Mitch\Hashids\Hashids'

现在最后但同样重要的是,您需要从 Terminal 发布包配置

php artisan config:publish mitch/hashids

用法

一旦您按照所有步骤完成安装,您就可以使用 Hashids。

编码

您可以直接对 ID 进行加密

Hashids::encode(1); // Creating hash... Ri7Bi

或多个...

Hashids::encode(1, 21, 12, 12, 666); // Creating hash... MMtaUpSGhdA

解码

这是相同的事情,但方向相反

Hashids::decode('Ri7Bi');

// Returns
array (size=1)
  0 => int 1

或多个...

Hashids::decode('MMtaUpSGhdA');

// Returns
array (size=5)
  0 => int 1
  1 => int 21
  2 => int 12
  3 => int 12
  4 => int 666

注入 Hashids

现在也可以将 Hashids 注入到您的类中。让我们以这个控制器为例...

class ExampleController extends BaseController
{
    protected $hashids;

    public function __construct(Hashids\Hashids $hashids)
    {
        $this->hashids = $hashids;
    }

    public function getIndex()
    {
        $hash = $this->hashids->encode(1);
        return View::make('example.index', compact('hash'));
    }
}

原始类名和命名空间已绑定到 IoC 容器,以返回我们的 Hashids 类实例。

使用 IoC

使用 IoC 创建一个 Hashids 实例

App::make('Hashids\Hashids')->encode(1);

就是这样!

有关 Hashids 的文档可以在这里找到 Hashids

感谢 Ivan Akimov (@ivanakimov) 创建 Hashids。Hashids 包的所有荣誉都归他所有。