我正在使用hautelook/alice-bundle 1.3.1(nelmio/alice 2.2.0和fzaninotto/faker 1.6.0)和php 5.6。
您可以使用variable-length arguments list配置自定義數據提供程序並將其用於您的燈具文件。
在的appbundle/DataFixtures/ORM/DataLoader.php:
namespace AppBundle\DataFixtures\ORM;
use Hautelook\AliceBundle\Doctrine\DataFixtures\AbstractLoader;
class DataLoader extends AbstractLoader
{
/**
* {@inheritdoc}
*/
public function getFixtures()
{
return [
__DIR__.'/../Fixtures/user.yml',
];
}
public function concat(...$strings)
{
$result = '';
foreach ($strings as $string) {
$result .= $string;
}
return $result;
}
}
現在你可以使用像這樣的自定義數據提供。
在的appbundle/DataFixtures /夾具/ user.yml:
AppBundle\Entity\User:
user-{1..10}:
firstname: <firstname()>
lastname: <lastname()>
email: <concat(@self->firstname, ".", @self->lastname, "@gmail.com")>
plainPassword: 123
username: <concat(@self->firstname, ".", @self->lastname)>
這是一個有點乏味寫的,但它的工作原理。
而對於到PHP 5.6之前,PHP版本,你可以用func_get_args()
獲得的參數列表中DataLoader.php,像這樣:
public function concat()
{
$result = '';
foreach (func_get_args() as $string) {
$result .= $string;
}
return $result;
}
原來愛麗絲實現是在GitHub的'nelmio/alice' –
您是否嘗試過創建用於連接字符串的自定義數據提供程序? https://github.com/nelmio/alice#custom-faker-data-providers – Ziumin
尚未,但謝謝你的提示。我會研究它並在此發佈結果。 –