Я настраиваю NelmioAlice а также обманщик в проекте Symfony2 через AlixeFixturesBundle. мне нужно состоящий приспособление как например:
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, чего у меня нет, имея это, как мне загрузить и использовать провайдера, которого я написал для приборов? Любой совет по этому поводу?
Это должно быть так же просто, как передать экземпляр провайдера в Loader
когда вы его строите:
$loader = new Loader('en_US', [new VeeveProvider]);
Других решений пока нет …