danilowa / laravel-factory-seeder-generator
一个基于模型及其关系的自动生成工厂和种子的 Laravel 包。
Requires
- php: ^8.1|^8.2
- laravel/framework: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^9.0
README
使用 Laravel Factory Seeder Generator 优化您的数据库种子!
此包简化了 Laravel 应用中结构化工厂和种子的创建,允许开发者轻松生成一致且真实的测试数据。它智能处理模型属性,包括可定制的数据生成选项和智能处理铸造。具有日志记录、错误处理和广泛的配置选项,此工具对于提高生产力和在开发工作流程中维护代码的整洁至关重要。
📚 目录
🔍 概述
Laravel Factory Seeder Generator 是一个高级工具,旨在简化 Laravel 应用中 工厂 和 种子 的生成。此包自动化了种子文件的创建,显著提高了生产率并减少了开发过程中的样板代码。
⭐ 功能
- 自动生成:轻松为所有模型创建工厂和种子,消除重复性任务,加快开发周期。
- 智能数据填充:自动从模型中提取所有
$fillable
属性,确保使用正确的字段进行数据生成。 - 智能处理铸造:利用模型中定义的铸造来使用 Laravel 的 Faker 生成真实数据。如果没有指定铸造,它将智能地推断每个
$fillable
字段最适合的铸造,优化数据生成。 - 无缝集成:与现有 Laravel 项目结构无缝集成,需要最少的配置和设置。
- 可定制选项:提供灵活的配置设置,以适应特定的开发需求。
✅ 要求
要使用 Laravel Factory Seeder Generator,请确保您的环境满足以下要求
- Laravel:此包需要 Laravel 8.x 或更高版本。
- PHP:确保您正在运行 PHP 8.1 或更高版本。
- Faker:此包利用 Faker 库进行数据生成,它包含在 Laravel 中。
🚀 安装
要安装 Laravel Factory Seeder Generator,请按照以下步骤操作
-
需求包:使用 Composer 将包添加到您的 Laravel 项目中
composer require danilowa/laravel-factory-seeder-generator
-
发布配置(可选):如果您的包包含配置文件,可以将它们发布到您的应用程序的配置目录中
php artisan vendor:publish --provider="Danilowa\LaravelFactorySeederGenerator\Providers\FactorySeederGeneratorServiceProvider"
🔧 工作原理
-
字段检索:该包扫描您的模型以识别所有在
$fillable
中列出的字段,确保仅使用所需字段进行数据生成。 -
智能数据生成:对于
$fillable
中的每个字段,该包使用 Laravel 的 Faker 库生成相关数据。 -
使用铸造:如果您的模型指定了铸造,该包将自动生成合适的数据类型。
⚙️ 配置
配置文件允许您自定义生成器的行为。以下是您可以修改的关键设置
-
自定义属性激活:切换此选项以启用或禁用自定义属性。
'custom_attributes_active' => true,
-
默认属性优先级:启用此设置时,它优先于默认 Laravel 铸造。
'custom_attributes_priority' => false,
-
自定义属性:指定自定义属性的映射。
'custom_attributes' => [ 'price' => '$this->faker->randomFloat(2, 1, 1000)', 'username' => '$this->faker->userName', ],
-
在工厂中包含关系:此选项允许您在生成的工厂中包含相关模型。
'include_relationships' => true,
-
自定义 Seeder 计数:设置生成 Seeder 时创建的默认记录数。
'custom_seeder_count' => 10,
-
启用日志记录:此选项启用了生成过程的详细日志记录。
'enable_logging' => false,
⚡ 命令概述
该软件包包含各种命令,以简化工厂和 Seeder 的生成过程。
- GenerateFactory:为指定的模型生成工厂。
- GenerateSeeder:为指定的模型创建 Seeder。
- GenerateFactoryAndSeederCommand:结合了两个命令的功能。
- GenerateFactoryAndSeederAllCommand:自动为您应用程序中所有模型生成工厂和 Seeder。
📜 使用示例
要为没有工厂和 Seeder 的模型生成所有必要的文件,请运行
php artisan make:a-all-factories-and-seeders --count=12
要为特定模型生成工厂和 Seeder 文件,使用
php artisan make:a-factories-and-seeders --count=14
要为特定模型生成工厂和 Seeder,执行
php artisan make:a-factory {ModelName} php artisan make:a-seeder {ModelName} --count=15
🚀 优势
- 效率:减少了手动创建工厂和 Seeder 所花费的时间。
- 一致性:确保生成的数据有效且一致。
- 灵活性:可定制设置,以适应您独特的开发需求。
✅ 结论
Laravel 工厂 Seeder 生成器 是 Laravel 开发者优化工作流程、自动化工厂和 Seeder 创建的必备工具。
🤝 贡献
欢迎贡献!请按照以下步骤进行贡献
- Fork 仓库。
- 创建一个新分支(
git checkout -b feature/YourFeature
)。 - 进行更改并提交(
git commit -m 'Add some feature'
)。 - 推送到分支(
git push origin feature/YourFeature
)。 - 发起一个 pull request。
📝 许可证
本软件包遵循 MIT 许可证。
📬 联系
如有任何问题或反馈,请联系
- 丹尼洛·奥利维拉: daniloworkdev@gmail.com
- 网站: daniloo.dev
注意:此软件包目前正在开发中。