gpt4 book ai didi

php - 如何在 Laravel 中实现你自己的 Faker provider

转载 作者:可可西里 更新时间:2023-10-31 22:09:06 29 4
gpt4 key购买 nike

我想在 Laravel 中为 Faker 创建一个自定义提供程序(例如,一个用于随机建筑物名称的提供程序)。

我应该将自定义提供程序存储在我的应用程序中的什么位置以及如何使用它?

最佳答案

您应该使用 php artisan 来生成自定义提供程序...

在命令行上,导航到应用程序的根目录并键入...

php artisan make:provider FakerServiceProvider

这应该会在 app/Providers 文件夹中生成一个新的提供程序。这是我的 register 函数看起来像 faker 文档中的示例。

/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->singleton('Faker', function($app) {
$faker = \Faker\Factory::create();
$newClass = new class($faker) extends \Faker\Provider\Base {
public function title($nbWords = 5)
{
$sentence = $this->generator->sentence($nbWords);
return substr($sentence, 0, strlen($sentence) - 1);
}
};

$faker->addProvider($newClass);
return $faker;
});
}

我在这里使用匿名类。如果您的 php < 7,您可能需要使用新的提供程序类创建一个新文件并将其传入。确保您还将此新提供程序添加到 config 中的 providers 数组/app.php.

现在它已注册,您可以使用以下方法获取新的 faker 类...

$faker = app('Faker');
echo $faker->title;

此外,如果您浏览 https://laravel.com/docs/5.2/facades 处的文档你也应该能够很容易地制作一个 Faker 门面。所有繁重的工作都已完成,您只需创建新的外观类,让 getFacadeAccessor 返回 'Faker',并将其添加到您的 facades app/config.php 中的数组。

然后你可以像这样简单地使用它......

echo Faker::title;

关于php - 如何在 Laravel 中实现你自己的 Faker provider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38250776/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com