news 2026/4/21 9:34:51

webman框架虚拟数据填充fakerphp/faker插件的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
webman框架虚拟数据填充fakerphp/faker插件的使用

一、使用背景
作为一名研发人员,想要批量制造一些测试数据,无论是自己测试,还是方便测试同学,都是有益的。fakerphp/faker插件可满足你的一些需求,它可以生成接近真实数据的一些虚拟数据,带来的体验感更好。

二、插件安装
参考Packagist插件市场:
在终端执行命令,并且可以指定对应的版本,选择不同的版本需要注意不同版本对php版本的要求:

插件安装完毕,查看扩展包目录:

三、框架内使用
webman框架可以自定义终端命令,执行如下:

app/Command下生成目录文件:

四、代码展示

引入安装的扩展库Faker\Factory,创建生成器实例,即可使用插件的属性如name,address,email,phoneNumber等等,在for循环里制定生成的数据个数
<?phpnamespaceapp\command;useapp\model\OrderCopy;useFaker\Factory;useSymfony\Component\Console\Command\Command;useSymfony\Component\Console\Input\InputInterface;useSymfony\Component\Console\Input\InputArgument;useSymfony\Component\Console\Output\OutputInterface;classFakeDataCreateextendsCommand{protectedstaticstring$defaultName='fakeData:create';protectedstaticstring$defaultDescription='fakeData create';/** * @return void */protectedfunctionconfigure():void{$this->addArgument('name',InputArgument::OPTIONAL,'Name description');}/** * @param InputInterface $input * @param OutputInterface $output * @return int */protectedfunctionexecute(InputInterface$input,OutputInterface$output):int{$output->writeln('start fakeData:create');$faker=Factory::create('zh_CN');// 创建生成器实例$users=[];for($i=0;$i<100;$i++){$users[]=['school_id'=>1,'canteen_id'=>2,'stall_id'=>9,'user_name'=>$faker->name,'email'=>$faker->unique()->email,'address'=>$faker->address(),'mobile'=>$faker->phoneNumber,'sn'=>'MO'.date('YmdHis',time()).$faker->numerify('########'),'amount'=>$faker->randomFloat($nbMaxDecimals=2,$min=0,$max=100),'amount_real'=>$faker->randomFloat(nbMaxDecimals:2,min:0,max:100),];}// 批量插入数据OrderCopy::insert($users);$output->writeln('end fakeData:create');returnself::SUCCESS;}}

五、执行命令

六、查看测试数据

七、总结
相比自己创建的测试数据,还是真实一些,对于后续测试,表查询效率,索引是否生效都有积极的意义。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 15:10:28

仿照若依框架进行数据权限控制

用的方案其实就是“若依”那套思路&#xff0c;不过自己做了点裁剪&#xff0c;核心就四步——注解标识、AOP 拦截、SQL 拼接、MyBatis 消费。下面按执行顺序捋一遍&#xff1a;打标记 在需要控制权限的 Mapper 方法上贴一个自定义注解 DataScope&#xff0c;里面两个值&#x…

作者头像 李华
网站建设 2026/4/20 11:19:49

AI初创企业融资周报:开源模型、自动化与垂直应用

重要融资亮点 本周&#xff0c;人工智能初创公司筹集了超过41亿美元的资金&#xff0c;在开源人工智能、法律技术和能源基础设施领域出现了里程碑式的事件。从Reflection AI的20亿美元B轮融资&#xff0c;到对工作流自动化和电网现代化的变革性投资&#xff0c;以下是一些亮点&…

作者头像 李华
网站建设 2026/4/20 16:21:31

高效软件测试团队的组织架构设计与演进路径

一、测试团队建设的战略意义与核心目标 在敏捷开发和DevOps理念深入人心的当下&#xff0c;软件测试已从单纯的产品质量把关者转变为业务价值实现的共同构建者。一个设计科学的测试团队架构&#xff0c;不仅能显著提升缺陷检测效率&#xff0c;更能通过质量左移、持续测试等实…

作者头像 李华
网站建设 2026/4/20 17:46:20

19、Apache 服务器配置与相关技术详解

Apache 服务器配置与相关技术详解 一、Apache 基础配置文件与概念 配置文件 httpd.conf :Apache 核心配置文件,整合了原 access.conf 和 srm.conf 的功能,Apache 从该文件中查找其设置。 access.conf :用于控制对文档的访问。 srm.conf :指定可以提供的文档类型…

作者头像 李华
网站建设 2026/4/20 21:12:00

制作电路图时找不到元器件怎么办?

如图我要绘制该元器件&#xff0c;为DC充电器插座&#xff0c;但是在立创EDA搜索发现没有&#xff0c;如图二搜索无果&#xff0c;当然搜索DC插座还是有的这是我们就要利用立创EDA强大的在线库打开立创商城&#xff0c;直接搜索&#xff0c;然后复制该商品编号&#xff0c;回到…

作者头像 李华
网站建设 2026/4/21 7:51:42

Spring AOP概念

Spring AOP是什么&#xff1f;Spring AOP是面向切面编程&#xff0c;他与OOP&#xff08;面向对象编程&#xff09;是相辅相成的。在 OOP 中&#xff0c;以类作为程序的基本单元&#xff0c;而 AOP 中的基本单元是 Aspect&#xff08;切面&#xff09;。在业务处理代码中&#…

作者头像 李华