oanhnn/laravel-fakeid

在 Laravel 应用中通过 URL 使用假 ID

v2.0.0 2020-07-14 05:01 UTC

This package is auto-updated.

Last update: 2024-09-14 13:38:45 UTC


README

Build Status Coverage Status Latest Version Total Downloads Requires PHP Software License

轻松在 Laravel 应用 URL 上实现假模型 ID。

要求

  • php >=7.2
  • Laravel 7.0+

Laravel 5.5+ 使用版本 1.x(需要 php 7.1.3+)

安装

通过 Composer 拉取此包开始。

$ composer require oanhnn/laravel-fakeid

使用以下命令发布配置文件:

$ php artisan vendor:publish --provider="Laravel\\FakeId\\ServiceProvider"

php artisan vendor:publish --tag=laravel-fakeid-config

编辑 config/fakeid.php 以配置特定驱动程序。

使用方法

入门

在您的模型类中,添加实现接口 ShouldFakeId 和特质 RoutesWithFakeId

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Laravel\FakeId\Contracts\ShouldFakeId;
use Laravel\FakeId\RoutesWithFakeId;

class MyModel extends Model implements ShouldFakeId
{
    use RoutesWithFakeId;
 
    // other logic
}

使用特定驱动程序

默认情况下,RoutesWithFakeId 使用默认驱动程序,它已在配置文件中设置。您可以通过覆盖 getFakeIdDriver() 方法来使用特定驱动程序

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Laravel\FakeId\Contracts\ShouldFakeId;
use Laravel\FakeId\Contracts\Driver;
use Laravel\FakeId\Facades\FakeId;
use Laravel\FakeId\RoutesWithFakeId;

class MyModel extends Model implements ShouldFakeId
{
    use RoutesWithFakeId;

    /**
     * @return \Laravel\FakeId\Contracts\Driver
     */
    public function getFakeIdDriver() : Driver
    {
        return FakeId::driver('hex');
        // or create driver instance
        // return new HexDriver();
    }
}

注意 每个驱动程序的输入数据格式可能不同,但解码后的输出数据与输入相同

自定义驱动程序

您还可以通过实现 Laravel\FakeId\Contracts\Driver 接口来创建自定义驱动程序

namespace App;

use Laravel\FakeId\Contracts\Driver;

class CustomDriver implements Driver
{
    // your driver logic
}    

并将它注册到 FakeId 管理器中,通过将以下代码添加到 AppServiceProvider::boot() 方法中:

<?php

namespace App\Providers;

use App\CustomDriver;
use Illuminate\Support\ServiceProvider;
use Laravel\FakeId\Facades\FakeId;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        FakeId::extend('custom', function($app) {
            return new CustomDriver();
        });

        // other logic
    }
}

现在,您可以使用它了

<?php

use Laravel\FakeId\Facades\FakeId;

FakeId::driver('custom')->encode('123');

变更日志

CHANGELOG 中查看所有变更日志

测试

$ git clone git@github.com/oanhnn/laravel-fakeid.git /path
$ cd /path
$ composer install
$ composer test

贡献

有关详细信息,请参阅 CONTRIBUTING

安全

如果您发现任何安全问题,请通过电子邮件联系 Oanh Nguyen 而不是使用问题跟踪器。

鸣谢

许可

本项目采用 MIT 许可证发布。
版权所有 © Oanh Nguyen.