如何在PHP框架中集成Hashids

PHP
小樊
82
2024-08-28 18:43:53

要在 PHP 框架中集成 Hashids,請(qǐng)按照以下步驟操作:

  1. 安裝 Hashids:

    使用 Composer 安裝 Hashids。打開(kāi)命令行或終端,然后運(yùn)行以下命令:

    composer require hashids/hashids
    
  2. 創(chuàng)建一個(gè)配置文件:

    在你的應(yīng)用程序的 config 目錄中創(chuàng)建一個(gè)名為 hashids.php 的新文件。將以下內(nèi)容添加到該文件中:

    <?php
    
    return [
        'salt' => env('HASHIDS_SALT', 'your-salt-string'),
        'length' => env('HASHIDS_LENGTH', 10),
        'alphabet' => env('HASHIDS_ALPHABET', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'),
    ];
    

    這里的值可以根據(jù)你的需求進(jìn)行修改。salt 是用于加密的鹽值,length 是生成的 Hash 字符串的長(zhǎng)度,alphabet 是用于生成 Hash 的字符集。

  3. .env 文件中添加配置變量:

    在項(xiàng)目根目錄的 .env 文件中添加以下內(nèi)容:

    HASHIDS_SALT=your-salt-string
    HASHIDS_LENGTH=10
    HASHIDS_ALPHABET=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
    

    請(qǐng)確保為 HASHIDS_SALT 設(shè)置一個(gè)安全的值。

  4. 創(chuàng)建一個(gè)服務(wù)提供者:

    app/Providers 目錄中創(chuàng)建一個(gè)名為 HashidsServiceProvider.php 的新文件。將以下內(nèi)容添加到該文件中:

    <?php
    
    namespace App\Providers;
    
    use Illuminate\Support\ServiceProvider;
    use Hashids\Hashids;
    
    class HashidsServiceProvider extends ServiceProvider
    {
        /**
         * Register services.
         *
         * @return void
         */
        public function register()
        {
            $this->app->singleton(Hashids::class, function ($app) {
                return new Hashids(
                    config('hashids.salt'),
                    config('hashids.length'),
                    config('hashids.alphabet')
                );
            });
        }
    
        /**
         * Bootstrap services.
         *
         * @return void
         */
        public function boot()
        {
            //
        }
    }
    

    這個(gè)服務(wù)提供者將 Hashids 注冊(cè)為一個(gè)單例,以便在整個(gè)應(yīng)用程序中重復(fù)使用。

  5. config/app.php 中注冊(cè)服務(wù)提供者:

    config/app.php 文件的 providers 數(shù)組中添加以下內(nèi)容:

    App\Providers\HashidsServiceProvider::class,
    
  6. 使用 Hashids:

    現(xiàn)在你可以在你的應(yīng)用程序中使用 Hashids。例如,在控制器中,你可以這樣做:

    use Hashids\Hashids;
    
    public function getHashedId(int $id, Hashids $hashids)
    {
        return $hashids->encode($id);
    }
    

    這將返回給定 ID 的 Hash 字符串。要解碼 Hash 字符串,只需調(diào)用 decode() 方法:

    $decodedId = $hashids->decode($hashedId)[0];
    

通過(guò)以上步驟,你已經(jīng)成功地在 PHP 框架中集成了 Hashids?,F(xiàn)在你可以在你的應(yīng)用程序中使用它來(lái)生成和解碼 Hash 字符串。

0