sp/fixture-dumper

从Doctrine导出固定值。

v1.2.0 2016-12-21 10:51 UTC

This package is auto-updated.

Last update: 2024-09-11 21:37:59 UTC


README

这个库旨在为Doctrine ORM/ODM提供一种简单的导出固定值的方式。

注意: 此库仍处于早期阶段。

Build Status

安装

此库可以通过Composer安装,作为sp/fixture-dumper

使用方法

基本使用

$manager = ...; // entity or document manager
$registry = new \Sp\FixtureDumper\Converter\Handler\HandlerRegistry();
$registry->addSubscribingHandler(new \Sp\FixtureDumper\Converter\Handler\DateHandler());

// for creating fixtures classes
$generator = new \Sp\FixtureDumper\Generator\ClassFixtureGenerator();

// for creating yml files which can be loaded with the alice fixtures library
$ymlGenerator = new \Sp\FixtureDumper\Generator\Alice\YamlFixtureGenerator();

// for creating array files which can be loaded with the alice fixtures library
$arrayGenerator = new \Sp\FixtureDumper\Generator\Alice\ArrayFixtureGenerator();

$generatorMap = new \PhpCollection\Map(array('class' => $generator, 'yml' => $ymlGenerator, 'array' => $arrayGenerator));
$dumper = new \Sp\FixtureDumper\ORMDumper($manager, $registry, $generatorMap);
// or
$dumper = new \Sp\FixtureDumper\MongoDBDumper($manager, $registry, $generatorMap);
// $dumper->setDumpMultipleFiles(false);

// the second argument specifies the generator type you want to use
$dumper->dump('/your/workspace/src/Acme/DemoBundle/DataFixtures/ORM', 'array');

排除策略

你可以实现接口 ExclusionStrategyInterface 来定义选择要导出的实体的策略。

// ...
$dumper = new \Sp\FixtureDumper\ORMDumper($manager, $registry, $generatorMap);

// The entity Post and Comment won't be dumped
$exclusion = new ArrayExclusionStrategy(['Post', 'Acme\DemoBundle\Entity\Comment']);
$dumper->setExclusionStrategy($exclusion);

$dumper->dump(...);

选项

AbstractDumper#dump 接受一个第三个参数 $options,它是一个数组,包含以下键

  • namespace:用于生成的类的命名空间,此选项在使用ClassFixtureGenerator时是必需的

许可证

在MIT许可证下发布,请参阅LICENSE。