我想为不同的环境创建一些fixture,例如prod加载默认值,dev用于开发人员,test用于phpunit测试。
我已经创建了一个抽象类
abstract class AbstractFixture extends Fixture implements ContainerAwareInterface
{
protected $container;
public function setContainer(ContainerInterface $container = null): void
{
$this->container = $container;
}
public function load(ObjectManager $manager): void
{
$kernel = $this->container->get('kernel');
if (\in_array($kernel->getEnvironment(), $this->getEnvironments(), true)) {
$this->doLoad($manager);
}
}
abstract protected function getEnvironments();
abstract protected function doLoad(ObjectManager $manager);
}
例如,如果我想要一个dev environment的fixture
class DevFixture extends AbstractFixture implements DependentFixtureInterface
{
public function getDependencies(): array
{
return [
AppFixture::class,
DevFixture::class,
];
}
protected function getEnvironments(): array
{
return ['dev'];
}
protected function doLoad(ObjectManager $objectManager): void
{
}
}
当我运行bin/console时doctrine:fixtures:load—环境开发
没关系
现在我想用这个设备用phpunit测试我的应用程序。
我想知道怎么做?使用setUp()并运行doctrine:fixtures:load--env dev命令还是有其他方法?