3

我正在通过AlixeFixturesBundle在 Symfony2 项目中设置NelmioAliceFaker。我需要一个组合夹具,例如:

representative{1..100}:
    veeva_rep_id (unique): qlv_005800000067SwzAAE

这是一个qlv_前缀,后跟一个随机的 18 个字符的字符串。我发现完成这项工作的最佳方法(如果有人知道另一种方法或完成这项工作的更好方法,请告诉我)是使用自定义伪造者,我编写了这段代码:

<?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 文档中解释的那样。现在,NelmioAlice,作者解释了如何添加自定义 Faker 数据提供程序,但它使用了我不这样做的 Doctrine Fixtures,有了这个,我如何加载和使用我在装置上编写的提供程序?有什么建议吗?

4

1 回答 1

1

它应该像在Loader构造它时将提供者的实例传递给它一样简单:

$loader = new Loader('en_US', [new VeeveProvider]);

于 2015-05-08T15:02:54.380 回答