在 Nelmio Alice 中使用没有标准教义装置的自定义伪造数据提供者

Using custom faker data providers without standard doctrine fixtures in Nelmio Alice

我正在设置 NelmioAlice and Faker in a Symfony2 project through AlixeFixturesBundle。我需要一个 composed 夹具,例如:

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;
    }
}

正如在 NelmioAlice 上解释的 here in Faker docs. Now, here 作者解释了如何添加 Custom Faker Data Providers 但它使用了 Doctrine Fixtures 我不这样,有这个,如何加载和使用我写在固定装置上的供应商?有什么建议吗?

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

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