oanhnn / laravel-fakeid
在 Laravel 应用中通过 URL 使用假 ID
v2.0.0
2020-07-14 05:01 UTC
Requires
- php: ^7.2.5
- illuminate/support: ^7.0
Requires (Dev)
- hashids/hashids: ^3.0|^4.0
- jenssegers/optimus: ^1.0
- orchestra/testbench: ^5.0
- phpunit/phpunit: ^8.5|^9.0
- squizlabs/php_codesniffer: ^3.5
Suggests
- hashids/hashids: For using hashids driver (version >= 3.0)
- jenssegers/optimus: For using optimus driver (version >= 1.0)
This package is auto-updated.
Last update: 2024-09-14 13:38:45 UTC
README
轻松在 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.