digital-creative / fakeable-data-transfer-object
1.0.2
2022-12-23 16:51 UTC
Requires
- php: ^8.0
- fakerphp/faker: ^1.21
- nesbot/carbon: ^2.64
- spatie/data-transfer-object: ^3.3
Requires (Dev)
- orchestra/testbench: ^6.19
- phpunit/phpunit: ^9.5
README
此包通过仅包含一个新的静态方法 ::fake()
扩展了 https://github.com/spatie/data-transfer-object,因此与原始包没有区别。
安装
您可以通过 composer 安装此包
composer require digital-creative/fakeable-data-transfer-object
依赖关系
使用方法
use DigitalCreative\FakeableDataTransferObject\DataTransferObject; class SomeObject extends DataTransferObject { public string $name; public int $age; }
然后
$dto1 = SomeObject::fake(); $dto2 = SomeObject::fake(age: 18); echo $dto1->name; // random word echo $dto1->age; // random int echo $dto2->name; // random word echo $dto2->age; // 18
注册自定义类型
您可以通过在您的 AppServiceProvider
的 boot
方法中添加以下内容来注册任何自定义类型
<?php namespace App\Providers; use BenSampo\Enum\Enum; use DigitalCreative\FakeableDataTransferObject\FakerRegistrar; use Illuminate\Http\UploadedFile; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function boot(): void { FakerRegistrar::register(Enum::class, function (string $class, mixed $value = null) { return blank($value) ? $class::getRandomInstance() : $class::fromValue($value); }); FakerRegistrar::register(UploadedFile::class, function (string $class, mixed $value = null) { /** @var UploadedFile $class */ return blank($value) ? $class::fake()->create('file.png') : $value; }); } }
并使用如下
use DigitalCreative\FakeableDataTransferObject\DataTransferObject; class SomeObject extends DataTransferObject { public GenderEnum $gender; public UploadedFile $attachment; }
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。