我正在通过AlixeFixturesBundle在Symfony2项目中设置Nelmioalice和Faker。我需要一个组成的固定装置,例如:
representative{1..100}:
veeva_rep_id (unique): qlv_005800000067SwzAAE
是qlv_
前缀,后面是随机18个字符字符串。我发现完成此操作的最好方法(如果有人知道另一个或更好地完成此操作的方法)是使用自定义伪造者,我写了这件代码:
<?php
/**
* FakerProvider: VeevaProvider.
*/
namespace PDIPDOneBundleDataFixtures;
use ReverseRegexLexer;
use ReverseRegexRandomSimpleRandom;
use ReverseRegexParser;
use ReverseRegexGeneratorScope;
class VeevaProvider extends FakerProviderBase
{
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 Docs中所述。现在,作者在Nelmioalice上解释了如何添加自定义伪造数据提供商,但它使用了我不这么做的学说固定装置?关于此的任何建议?
它应该像将提供商的实例传递到Loader
时一样简单:
$loader = new Loader('en_US', [new VeeveProvider]);