[2.0] Adding test coverage for ClassMetadataExporter
This commit is contained in:
parent
27d8873ae7
commit
5fb493c5d1
13 changed files with 326 additions and 25 deletions
|
@ -1,4 +1,4 @@
|
||||||
version_name=2.0.0-ALPHA1
|
version_name=2.0.0-ALPHA2
|
||||||
version=2.0.0
|
version=2.0.0
|
||||||
stability=alpha
|
stability=alpha
|
||||||
build.dir=build
|
build.dir=build
|
||||||
|
|
|
@ -77,19 +77,33 @@ class ClassMetadataExporter
|
||||||
throw DoctrineException::invalidMappingDriverType($type);
|
throw DoctrineException::invalidMappingDriverType($type);
|
||||||
}
|
}
|
||||||
|
|
||||||
$class = $this->_mappingDrivers[$type];
|
$driver = $this->getMappingDriver($type, $dir);
|
||||||
if (is_subclass_of($class, 'Doctrine\ORM\Mapping\Driver\AbstractFileDriver')) {
|
|
||||||
$driver = new $class($dir, constant($class . '::PRELOAD'));
|
|
||||||
} else {
|
|
||||||
$reader = new \Doctrine\Common\Annotations\AnnotationReader(new \Doctrine\Common\Cache\ArrayCache);
|
|
||||||
$reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
|
|
||||||
$driver = new $class($reader);
|
|
||||||
}
|
|
||||||
$this->_mappingDirectories[] = array($dir, $driver);
|
$this->_mappingDirectories[] = array($dir, $driver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function _getMetadataInstances()
|
public function getMappingDriver($type, $dir)
|
||||||
|
{
|
||||||
|
if ( ! isset($this->_mappingDrivers[$type])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$class = $this->_mappingDrivers[$type];
|
||||||
|
if (is_subclass_of($class, 'Doctrine\ORM\Mapping\Driver\AbstractFileDriver')) {
|
||||||
|
$driver = new $class($dir, constant($class . '::PRELOAD'));
|
||||||
|
} else {
|
||||||
|
$reader = new \Doctrine\Common\Annotations\AnnotationReader(new \Doctrine\Common\Cache\ArrayCache);
|
||||||
|
$reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
|
||||||
|
$driver = new $class($reader);
|
||||||
|
}
|
||||||
|
return $driver;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMappingDirectories()
|
||||||
|
{
|
||||||
|
return $this->_mappingDirectories;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMetadataInstances()
|
||||||
{
|
{
|
||||||
$classes = array();
|
$classes = array();
|
||||||
|
|
||||||
|
@ -108,12 +122,10 @@ class ClassMetadataExporter
|
||||||
$vars = get_defined_vars();
|
$vars = get_defined_vars();
|
||||||
foreach ($vars as $var) {
|
foreach ($vars as $var) {
|
||||||
if ($var instanceof \Doctrine\ORM\Mapping\ClassMetadataInfo) {
|
if ($var instanceof \Doctrine\ORM\Mapping\ClassMetadataInfo) {
|
||||||
$classes[] = $var;
|
$classes[$var->name] = $var;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$classes = array_unique($classes);
|
|
||||||
$classes = array_values($classes);
|
|
||||||
} else {
|
} else {
|
||||||
if ($driver instanceof \Doctrine\ORM\Mapping\Driver\AnnotationDriver) {
|
if ($driver instanceof \Doctrine\ORM\Mapping\Driver\AnnotationDriver) {
|
||||||
$iter = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir),
|
$iter = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir),
|
||||||
|
@ -133,7 +145,7 @@ class ClassMetadataExporter
|
||||||
if ( ! $driver->isTransient($className)) {
|
if ( ! $driver->isTransient($className)) {
|
||||||
$metadata = new ClassMetadata($className);
|
$metadata = new ClassMetadata($className);
|
||||||
$driver->loadMetadataForClass($className, $metadata);
|
$driver->loadMetadataForClass($className, $metadata);
|
||||||
$classes[] = $metadata;
|
$classes[$metadata->name] = $metadata;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -141,7 +153,7 @@ class ClassMetadataExporter
|
||||||
foreach ($preloadedClasses as $className) {
|
foreach ($preloadedClasses as $className) {
|
||||||
$metadata = new ClassMetadataInfo($className);
|
$metadata = new ClassMetadataInfo($className);
|
||||||
$driver->loadMetadataForClass($className, $metadata);
|
$driver->loadMetadataForClass($className, $metadata);
|
||||||
$classes[] = $metadata;
|
$classes[$metadata->name] = $metadata;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,6 +175,6 @@ class ClassMetadataExporter
|
||||||
}
|
}
|
||||||
|
|
||||||
$class = $this->_exporterDrivers[$type];
|
$class = $this->_exporterDrivers[$type];
|
||||||
return new $class($this->_getMetadataInstances());
|
return new $class($this->getMetadataInstances(), $dir);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -46,6 +46,11 @@ abstract class AbstractExporter
|
||||||
$this->_outputDir = $dir;
|
$this->_outputDir = $dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getExtension()
|
||||||
|
{
|
||||||
|
return $this->_extension;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the directory to output the mapping files to
|
* Set the directory to output the mapping files to
|
||||||
*
|
*
|
||||||
|
|
|
@ -116,6 +116,11 @@ class AnnotationExporter extends AbstractExporter
|
||||||
$this->_numSpaces = $numSpaces;
|
$this->_numSpaces = $numSpaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function hasNamespace($metadata)
|
||||||
|
{
|
||||||
|
return strpos($metadata->name, '\\') ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
public function extendsClass()
|
public function extendsClass()
|
||||||
{
|
{
|
||||||
return $this->_classToExtend ? true : false;
|
return $this->_classToExtend ? true : false;
|
||||||
|
@ -145,7 +150,11 @@ class AnnotationExporter extends AbstractExporter
|
||||||
|
|
||||||
public function getClassName($metadata)
|
public function getClassName($metadata)
|
||||||
{
|
{
|
||||||
return substr($metadata->name, strpos($metadata->name, '\\') + 1, strlen($metadata->name));
|
if ($pos = strpos($metadata->name, '\\')) {
|
||||||
|
return substr($metadata->name, $pos + 1, strlen($metadata->name));
|
||||||
|
} else {
|
||||||
|
return $metadata->name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNamespace($metadata)
|
public function getNamespace($metadata)
|
||||||
|
@ -227,9 +236,9 @@ class AnnotationExporter extends AbstractExporter
|
||||||
public function getTableAnnotation($metadata)
|
public function getTableAnnotation($metadata)
|
||||||
{
|
{
|
||||||
$table = array();
|
$table = array();
|
||||||
$table[] = 'name=' . $metadata->primaryTable['name'];
|
$table[] = 'name="' . $metadata->primaryTable['name'] . '"';
|
||||||
if (isset($metadata->primaryTable['schema'])) {
|
if (isset($metadata->primaryTable['schema'])) {
|
||||||
$table[] = 'schema=' . $metadata->primaryTable['schema'];
|
$table[] = 'schema="' . $metadata->primaryTable['schema'] . '"';
|
||||||
}
|
}
|
||||||
return '@Table(' . implode(', ', $table) . ')';
|
return '@Table(' . implode(', ', $table) . ')';
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
namespace Doctrine\ORM\Tools\Export\Driver;
|
namespace Doctrine\ORM\Tools\Export\Driver;
|
||||||
|
|
||||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
use Doctrine\ORM\Mapping\ClassMetadataInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassMetadata exporter for PHP code
|
* ClassMetadata exporter for PHP code
|
||||||
|
@ -49,16 +49,16 @@ class PhpExporter extends AbstractExporter
|
||||||
$lines = array();
|
$lines = array();
|
||||||
$lines[] = '<?php';
|
$lines[] = '<?php';
|
||||||
$lines[] = null;
|
$lines[] = null;
|
||||||
$lines[] = 'use Doctrine\ORM\Mapping\ClassMetadata;';
|
$lines[] = 'use Doctrine\ORM\Mapping\ClassMetadataInfo;';
|
||||||
$lines[] = null;
|
$lines[] = null;
|
||||||
$lines[] = "\$metadata = new ClassMetadata('" . $metadata->name . "');";
|
$lines[] = "\$metadata = new ClassMetadataInfo('" . $metadata->name . "');";
|
||||||
|
|
||||||
if ($metadata->isMappedSuperclass) {
|
if ($metadata->isMappedSuperclass) {
|
||||||
$lines[] = '$metadata->isMappedSuperclass = true;';
|
$lines[] = '$metadata->isMappedSuperclass = true;';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($metadata->inheritanceType) {
|
if ($metadata->inheritanceType) {
|
||||||
$lines[] = '$metadata->setInheritanceType(ClassMetadata::INHERITANCE_TYPE_' . $this->_getInheritanceTypeString($metadata->inheritanceType) . ');';
|
$lines[] = '$metadata->setInheritanceType(ClassMetadataInfo::INHERITANCE_TYPE_' . $this->_getInheritanceTypeString($metadata->inheritanceType) . ');';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($metadata->customRepositoryClassName) {
|
if ($metadata->customRepositoryClassName) {
|
||||||
|
@ -78,7 +78,7 @@ class PhpExporter extends AbstractExporter
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($metadata->changeTrackingPolicy) {
|
if ($metadata->changeTrackingPolicy) {
|
||||||
$lines[] = '$metadata->setChangeTrackingPolicy(ClassMetadata::CHANGETRACKING_' . $this->_getChangeTrackingPolicyString($metadata->changeTrackingPolicy) . ');';
|
$lines[] = '$metadata->setChangeTrackingPolicy(ClassMetadataInfo::CHANGETRACKING_' . $this->_getChangeTrackingPolicyString($metadata->changeTrackingPolicy) . ');';
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($metadata->fieldMappings as $fieldMapping) {
|
foreach ($metadata->fieldMappings as $fieldMapping) {
|
||||||
|
@ -86,7 +86,7 @@ class PhpExporter extends AbstractExporter
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($generatorType = $this->_getIdGeneratorTypeString($metadata->generatorType)) {
|
if ($generatorType = $this->_getIdGeneratorTypeString($metadata->generatorType)) {
|
||||||
$lines[] = '$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_' . $generatorType . ');';
|
$lines[] = '$metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_' . $generatorType . ');';
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($metadata->associationMappings as $associationMapping) {
|
foreach ($metadata->associationMappings as $associationMapping) {
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
[?php
|
[?php
|
||||||
|
|
||||||
|
<?php if ($this->hasNamespace($metadata)): ?>
|
||||||
|
|
||||||
namespace <?php echo $this->getNamespace($metadata) ?>;
|
namespace <?php echo $this->getNamespace($metadata) ?>;
|
||||||
|
<?php endif; ?>
|
||||||
<?php if ($this->extendsClass()): ?>
|
<?php if ($this->extendsClass()): ?>
|
||||||
|
|
||||||
use <?php echo $this->getClassToExtendNamespace() ?>;
|
use <?php echo $this->getClassToExtendNamespace() ?>;
|
||||||
|
|
|
@ -31,6 +31,7 @@ class AllTests
|
||||||
$suite->addTest(Functional\AllTests::suite());
|
$suite->addTest(Functional\AllTests::suite());
|
||||||
$suite->addTest(Id\AllTests::suite());
|
$suite->addTest(Id\AllTests::suite());
|
||||||
$suite->addTest(Proxy\AllTests::suite());
|
$suite->addTest(Proxy\AllTests::suite());
|
||||||
|
$suite->addTest(Tools\AllTests::suite());
|
||||||
|
|
||||||
return $suite;
|
return $suite;
|
||||||
}
|
}
|
||||||
|
|
31
tests/Doctrine/Tests/ORM/Tools/AllTests.php
Normal file
31
tests/Doctrine/Tests/ORM/Tools/AllTests.php
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Doctrine\Tests\ORM\Tools;
|
||||||
|
|
||||||
|
if (!defined('PHPUnit_MAIN_METHOD')) {
|
||||||
|
define('PHPUnit_MAIN_METHOD', 'Orm_Tools_AllTests::main');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../../TestInit.php';
|
||||||
|
|
||||||
|
|
||||||
|
class AllTests
|
||||||
|
{
|
||||||
|
public static function main()
|
||||||
|
{
|
||||||
|
\PHPUnit_TextUI_TestRunner::run(self::suite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function suite()
|
||||||
|
{
|
||||||
|
$suite = new \Doctrine\Tests\DoctrineTestSuite('Doctrine Orm Hydration');
|
||||||
|
|
||||||
|
$suite->addTestSuite('Doctrine\Tests\ORM\Tools\Export\ClassMetadataExporterTest');
|
||||||
|
|
||||||
|
return $suite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PHPUnit_MAIN_METHOD == 'Orm_Tools_AllTests::main') {
|
||||||
|
AllTests::main();
|
||||||
|
}
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* This software consists of voluntary contributions made by many individuals
|
||||||
|
* and is licensed under the LGPL. For more information, see
|
||||||
|
* <http://www.doctrine-project.org>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Doctrine\Tests\ORM\Tools\Export;
|
||||||
|
|
||||||
|
use Doctrine\ORM\Tools\Export\ClassMetadataExporter;
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../../../TestInit.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test case for ClassMetadataExporter
|
||||||
|
*
|
||||||
|
* @author Jonathan H. Wage <jonwage@gmail.com>
|
||||||
|
* @author Roman Borschel <roman@code-factory.org
|
||||||
|
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||||
|
* @link http://www.phpdoctrine.org
|
||||||
|
* @since 2.0
|
||||||
|
* @version $Revision$
|
||||||
|
*/
|
||||||
|
class ClassMetadataExporterTest extends \Doctrine\Tests\OrmTestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Test that we can get the different types of exporters
|
||||||
|
*/
|
||||||
|
public function testGetExporter()
|
||||||
|
{
|
||||||
|
$cme = new ClassMetadataExporter();
|
||||||
|
|
||||||
|
$exporter = $cme->getExporter('xml');
|
||||||
|
$this->assertTrue($exporter instanceof \Doctrine\ORM\Tools\Export\Driver\XmlExporter);
|
||||||
|
|
||||||
|
$exporter = $cme->getExporter('yml');
|
||||||
|
$this->assertTrue($exporter instanceof \Doctrine\ORM\Tools\Export\Driver\YamlExporter);
|
||||||
|
|
||||||
|
$exporter = $cme->getExporter('annotation');
|
||||||
|
$this->assertTrue($exporter instanceof \Doctrine\ORM\Tools\Export\Driver\AnnotationExporter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that we can add mapping directories for the different types of
|
||||||
|
* mapping information.
|
||||||
|
*/
|
||||||
|
public function testAddMappingDirectory()
|
||||||
|
{
|
||||||
|
$cme = new ClassMetadataExporter();
|
||||||
|
$cme->addMappingDir(__DIR__ . '/annotation', 'annotation');
|
||||||
|
$cme->addMappingDir(__DIR__ . '/php', 'php');
|
||||||
|
$cme->addMappingDir(__DIR__ . '/xml', 'xml');
|
||||||
|
$cme->addMappingDir(__DIR__ . '/yml', 'yml');
|
||||||
|
|
||||||
|
$mappingDirectories = $cme->getMappingDirectories();
|
||||||
|
$this->assertEquals(4, count($mappingDirectories));
|
||||||
|
|
||||||
|
$this->assertEquals($mappingDirectories[0][0], __DIR__.'/annotation');
|
||||||
|
$this->assertTrue($mappingDirectories[0][1] instanceof \Doctrine\ORM\Mapping\Driver\AnnotationDriver);
|
||||||
|
|
||||||
|
$this->assertEquals($mappingDirectories[1][0], __DIR__.'/php');
|
||||||
|
$this->assertEquals('php', $mappingDirectories[1][1]);
|
||||||
|
|
||||||
|
$this->assertEquals($mappingDirectories[2][0], __DIR__.'/xml');
|
||||||
|
$this->assertTrue($mappingDirectories[2][1] instanceof \Doctrine\ORM\Mapping\Driver\XmlDriver);
|
||||||
|
|
||||||
|
$this->assertEquals($mappingDirectories[3][0], __DIR__.'/yml');
|
||||||
|
$this->assertTrue($mappingDirectories[3][1] instanceof \Doctrine\ORM\Mapping\Driver\YamlDriver);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that we can add mapping directories then retrieve all the defined
|
||||||
|
* ClassMetadata instances that are defined in the directories
|
||||||
|
*/
|
||||||
|
public function testGetMetadataInstances()
|
||||||
|
{
|
||||||
|
$cme = new ClassMetadataExporter();
|
||||||
|
$cme->addMappingDir(__DIR__ . '/annotation', 'annotation');
|
||||||
|
$cme->addMappingDir(__DIR__ . '/php', 'php');
|
||||||
|
$cme->addMappingDir(__DIR__ . '/xml', 'xml');
|
||||||
|
$cme->addMappingDir(__DIR__ . '/yml', 'yml');
|
||||||
|
|
||||||
|
$metadataInstances = $cme->getMetadataInstances();
|
||||||
|
$this->assertEquals(4, count($metadataInstances));
|
||||||
|
$this->assertEquals('AnnotationTest', $metadataInstances[0]->name);
|
||||||
|
$this->assertEquals('PhpTest', $metadataInstances[1]->name);
|
||||||
|
$this->assertEquals('XmlTest', $metadataInstances[2]->name);
|
||||||
|
$this->assertEquals('YmlTest', $metadataInstances[3]->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that we can export mapping directories to another format and that
|
||||||
|
* the exported data can then be read back in properly.
|
||||||
|
*/
|
||||||
|
public function testExport()
|
||||||
|
{
|
||||||
|
$exportDir = __DIR__ . '/export';
|
||||||
|
|
||||||
|
if ( ! is_dir($exportDir)) {
|
||||||
|
mkdir($exportDir, 0777, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$types = array('annotation', 'php', 'xml', 'yml');
|
||||||
|
|
||||||
|
$cme = new ClassMetadataExporter();
|
||||||
|
$cme->addMappingDir(__DIR__ . '/php', 'php');
|
||||||
|
$cme->addMappingDir(__DIR__ . '/xml', 'xml');
|
||||||
|
$cme->addMappingDir(__DIR__ . '/yml', 'yml');
|
||||||
|
|
||||||
|
foreach ($types as $type) {
|
||||||
|
// Export the above mapping directories to the type
|
||||||
|
$exporter = $cme->getExporter($type, __DIR__ . '/export/' . $type);
|
||||||
|
$exporter->export();
|
||||||
|
|
||||||
|
// Make sure the files were written
|
||||||
|
$this->assertTrue(file_exists(__DIR__ . '/export/' . $type . '/PhpTest'.$exporter->getExtension()));
|
||||||
|
$this->assertTrue(file_exists(__DIR__ . '/export/' . $type . '/XmlTest'.$exporter->getExtension()));
|
||||||
|
$this->assertTrue(file_exists(__DIR__ . '/export/' . $type . '/YmlTest'.$exporter->getExtension()));
|
||||||
|
|
||||||
|
// Try and read back in the exported mapping files to make sure they are valid
|
||||||
|
$cme2 = new ClassMetadataExporter();
|
||||||
|
$cme2->addMappingDir(__DIR__ . '/export/' . $type, $type);
|
||||||
|
$metadataInstances = $cme2->getMetadataInstances();
|
||||||
|
$this->assertEquals(3, count($metadataInstances));
|
||||||
|
$this->assertEquals('PhpTest', $metadataInstances[0]->name);
|
||||||
|
$this->assertEquals('XmlTest', $metadataInstances[1]->name);
|
||||||
|
$this->assertEquals('YmlTest', $metadataInstances[2]->name);
|
||||||
|
|
||||||
|
// Cleanup
|
||||||
|
unlink(__DIR__ . '/export/' . $type . '/PhpTest'.$exporter->getExtension());
|
||||||
|
unlink(__DIR__ . '/export/' . $type . '/XmlTest'.$exporter->getExtension());
|
||||||
|
unlink(__DIR__ . '/export/' . $type . '/YmlTest'.$exporter->getExtension());
|
||||||
|
rmdir(__DIR__ . '/export/'.$type);
|
||||||
|
}
|
||||||
|
rmdir(__DIR__ . '/export');
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Entity
|
||||||
|
* @Table(name="annotation_test")
|
||||||
|
*/
|
||||||
|
class AnnotationTest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @Column(type="integer")
|
||||||
|
* @Id
|
||||||
|
* @GeneratedValue(strategy="AUTO")
|
||||||
|
*/
|
||||||
|
private $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Column(type="string", length=50)
|
||||||
|
*/
|
||||||
|
private $name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set id
|
||||||
|
*/
|
||||||
|
public function setId($value)
|
||||||
|
{
|
||||||
|
$this->id = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get id
|
||||||
|
*/
|
||||||
|
public function getId()
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set name
|
||||||
|
*/
|
||||||
|
public function setName($value)
|
||||||
|
{
|
||||||
|
$this->name = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get name
|
||||||
|
*/
|
||||||
|
public function getName()
|
||||||
|
{
|
||||||
|
return $this->name;
|
||||||
|
}
|
||||||
|
}
|
23
tests/Doctrine/Tests/ORM/Tools/Export/php/PhpTest.php
Normal file
23
tests/Doctrine/Tests/ORM/Tools/Export/php/PhpTest.php
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Doctrine\ORM\Mapping\ClassMetadataInfo;
|
||||||
|
|
||||||
|
$metadata = new ClassMetadataInfo('PhpTest');
|
||||||
|
$metadata->setInheritanceType(ClassMetadataInfo::INHERITANCE_TYPE_NONE);
|
||||||
|
$metadata->setPrimaryTable(array(
|
||||||
|
'name' => 'php_test',
|
||||||
|
));
|
||||||
|
$metadata->setChangeTrackingPolicy(ClassMetadataInfo::CHANGETRACKING_DEFERRED_IMPLICIT);
|
||||||
|
$metadata->mapField(array(
|
||||||
|
'id' => true,
|
||||||
|
'fieldName' => 'id',
|
||||||
|
'type' => 'integer',
|
||||||
|
'columnName' => 'id',
|
||||||
|
));
|
||||||
|
$metadata->mapField(array(
|
||||||
|
'fieldName' => 'name',
|
||||||
|
'type' => 'string',
|
||||||
|
'length' => 50,
|
||||||
|
'columnName' => 'name',
|
||||||
|
));
|
||||||
|
$metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO);
|
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"><entity name="XmlTest" table="xml_test"><change-tracking-policy>DEFERRED_IMPLICIT</change-tracking-policy><field name="name" type="string" column="name" length="50"/><id name="id" type="integer" column="id"><generator strategy="AUTO"/></id></entity></doctrine-mapping>
|
12
tests/Doctrine/Tests/ORM/Tools/Export/yml/YmlTest.dcm.yml
Normal file
12
tests/Doctrine/Tests/ORM/Tools/Export/yml/YmlTest.dcm.yml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
YmlTest:
|
||||||
|
type: entity
|
||||||
|
table: yml_test
|
||||||
|
id:
|
||||||
|
id:
|
||||||
|
type: integer
|
||||||
|
generator:
|
||||||
|
strategy: AUTO
|
||||||
|
fields:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
length: 50
|
Loading…
Add table
Reference in a new issue