我正在通过NelmioAlice在Symfony2项目中设置Faker和AlixeFixturesBundle。我需要一个组合夹具,例如:
representative{1..100}:
veeva_rep_id (unique): qlv_005800000067SwzAAE
这是一个qlv_
前缀,后跟一个随机的18个字符的字符串。我发现完成这项任务的最佳方法(如果有人知道另一个或更好的方法来完成这个让我知道)是使用一个自定义的faker并且我写了这段代码:
<?php
/**
* FakerProvider: VeevaProvider.
*/
namespace PDI\PDOneBundle\DataFixtures;
use ReverseRegex\Lexer;
use ReverseRegex\Random\SimpleRandom;
use ReverseRegex\Parser;
use ReverseRegex\Generator\Scope;
class VeevaProvider extends \Faker\Provider\Base
{
public function veevaRepId()
{
$lexer = new Lexer('[a-zA-Z0-9]{18}');
$gen = new SimpleRandom(10007);
$result = '';
$parser = new Parser($lexer, new Scope(), new Scope());
$parser->parse()->getResult()->generate($result, $gen);
return 'qlv_' . $result;
}
}
在Faker文档中解释here。现在,NelmioAlice的here作者解释了如何添加自定义Faker数据提供程序,但它使用的是Doctrine Fixtures,我不这样做,有了这个,我如何加载和使用提供程序I在夹具上写道?对此有何建议?
答案 0 :(得分:1)
它应该像在构造它时将提供者的实例传递到Loader
一样简单:
$loader = new Loader('en_US', [new VeeveProvider]);