许多网站和应用程序的开发都需要各种类型的数据来模拟现实生活中的工作方式。在项目的测试和开发阶段,我们经常使用虚假数据来填充数据库、填充UI元素等等。
自己编写代码为项目生成虚假数据可能会非常繁琐。在本教程中,您将学习如何使用PHP中久经考验的Faker库来生成虚假数据。
入门
在继续之前,我想澄清几点。
最初的虚假库是fzaninotto/Faker。但是,它在2020年12月11日被所有者存档。现在,名为FakerPHP/Faker的库分支正在继续开发工作。如果您正在尝试决定应该在项目中使用哪一个,请选择FakerPHP。
来自FakerPHP的Faker要求您的PHP版本大于或等于7.4。这与原始库支持的PHP >= 5.3.3形成对比。
从现在开始,本教程中对Faker的所有引用都将指代较新的分支版本。
您可以使用composer安装faker,方法是运行以下命令:
<code>composer require fakerphp/faker</code>
这将为您创建一个composer.json文件,并在vendor目录中安装所有必需的包。
安装完成后,您可以通过将这两行添加到代码中来开始在项目中使用该库:
require 'vendor/autoload.php'; $faker = Faker\Factory::create();
第一行将faker库包含在我们的项目中。
在第二行中,我们使用对Generator实例的静态Factory类的调用初始化一个faker生成器,我们可以使用它来生成各种虚假数据。
生成虚假姓名、地址和电话号码
Provider对象用于生成随机数据。对我们捆绑了默认提供程序的Generator实例的调用。
默认提供程序生成基于美国的姓名、地址、电话号码、公司详细信息等。这些调用在后台添加了提供程序:
$faker = new Faker\Generator(); $faker->addProvider(new Faker\Provider\en_US\Person($faker)); $faker->addProvider(new Faker\Provider\en_US\Address($faker)); $faker->addProvider(new Faker\Provider\en_US\PhoneNumber($faker)); $faker->addProvider(new Faker\Provider\en_US\Company($faker)); $faker->addProvider(new Faker\Provider\Lorem($faker)); $faker->addProvider(new Faker\Provider\Internet($faker));
您可以通过简单地调用name属性来在faker中生成虚假姓名。每次调用都会输出不同的随机名称。这是一个例子:
require 'vendor/autoload.php'; $faker = Faker\Factory::create(); $fake_names = []; for($i = 0; $i < 10; $i++){ $fake_names[] = $faker->name; } /* Array ( [0] => Gabe Mann Jr. [1] => Lazaro Leuschke [2] => Angie Welch Sr. [3] => Prof. Kirk Krajcik III [4] => Sadye Mosciski [5] => Danyka Braun [6] => Jacinthe Dickinson [7] => Clifton Beahan [8] => Dr. Jan Casper MD [9] => Adelia Schimmel ) */ print_r($fake_names);
如果您对全名不感兴趣,您也可以只请求名字或姓氏。
require 'vendor/autoload.php'; $faker = Faker\Factory::create(); $first_names = []; for($i = 0; $i < 10; $i++){ $first_names[] = $faker->firstName; } // Outputs: Dylan, Ariane, Doris, Reilly, Jamar, Merl, Maverick, Frederik, Lucius, Madyson echo implode(', ', $first_names);
假设您只需要男性或女性姓名。在这种情况下,您可以简单地调用firstNameMale()和address()方法或访问phoneNumber()、phoneNumberWithExtension()。
require 'vendor/autoload.php'; $faker = Faker\Factory::create(); /* Phone Number: +1-724-494-3101 Phone Number (Extension): (475) 499-3999 x9969 Phone Number (Toll Free): 855.618.0155 Phone Number: 1-660-934-8668 Phone Number (Extension): 351-533-3301 x1602 Phone Number (Toll Free): 844-530-4671 */ for($i = 0; $i < 2; $i++){ echo "Phone Number: ".$faker->phoneNumber()."\n"; echo "Phone Number (Extension): ".$faker->phoneNumberWithExtension()."\n"; echo "Phone Number (Toll Free): ".$faker->tollFreePhoneNumber()."\n\n"; }
生成特定于区域设置的虚假详细信息
假设您正在开发一个针对特定区域的应用程序。在这种情况下,您可能希望使用反映目标市场的数据。例如,一个面向尼日利亚人的应用程序将受益于拥有尼日利亚姓名。类似地,面向印度用户的应用程序可能希望使用印度地址。
生成特定于区域设置的数据的技巧是将区域设置传递给randomNumber()方法,默认情况下,randomNumber()方法生成具有指定位数的随机数。您可以传递unixTime()方法来获取0到当前时间或指定时间之间的Unix时间戳值。也可以生成随机dateTime()方法。同样,默认最大值为当前日期和时间。
如果您想生成dateTimeAD()方法,它会返回1年1月1日到给定最大值之间的日期。
您可以使用time()方法以特定格式生成随机日期和时间。
假设您需要获取dateTimeBetween()方法。
<code>composer require fakerphp/faker</code>
使用虚假数据生成标记
现在我们知道了如何使用Faker生成不同类型的数值,我们可以组合它们的结果来创建XML或HTML文档,用数值填充数据库等等。例如,考虑下面的代码,它为不同的人生成随机配置文件。
require 'vendor/autoload.php'; $faker = Faker\Factory::create();
生成随机值后,您可以对它们执行任何操作。在本例中,我们在Base类中输出它们以生成我们想要的数据类型。如果您正在寻找一个生成随机数据的库,Faker绝对值得一试。
以上是使用Faker生成填充数据进行自动测试的详细内容。更多信息请关注PHP中文网其他相关文章!

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

Laravel的服务容器和服务提供商是其架构的基础。 本文探讨了服务容器,详细信息服务提供商创建,注册,并通过示例演示了实际用法。 我们将从OVE开始


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),