public function testBothMappingDrivers()
 {
     $builder = new BaseActiveRecord(new ClassMetadataInfo('foo'));
     $builder->setMappingDriver(BaseActiveRecord::MAPPING_STATIC_PHP | BaseActiveRecord::MAPPING_ANNOTATION);
     $this->assertTrue($builder->isMappingStaticPhp());
     $this->assertTrue($builder->isMappingAnnotation());
 }
 static public function setUpBeforeClass()
 {
     $metadata = new ClassMetadataInfo('Propel\\Tests\\Builder\\ORM\\Book');
     $metadata->mapField(array('fieldName' => 'id', 'type' => 'integer', 'id' => true));
     $metadata->mapField(array('fieldName' => 'name', 'type' => 'string', 'columnName' => 'foo_name', 'length' => 25, 'nullable' => true, 'columnDefinition' => 'Hello world'));
     $metadata->mapField(array('fieldName' => 'status', 'type' => 'integer', 'default' => 23, 'precision' => 2, 'scale' => 2, 'unique' => 'unique_status'));
     $metadata->mapOneToOne(array(
         'fieldName' => 'author',
         'targetEntity' => 'Doctrine\Tests\ORM\Tools\EntityGeneratorAuthor',
         'mappedBy' => 'book',
         'joinColumns' => array(
             array('name' => 'author_id', 'referencedColumnName' => 'id')
         ),
     ));
     $metadata->mapManyToMany(array(
         'fieldName' => 'comments',
         'targetEntity' => 'Doctrine\Tests\ORM\Tools\EntityGeneratorComment',
         'joinTable' => array(
             'name' => 'book_comment',
             'joinColumns' => array(array('name' => 'book_id', 'referencedColumnName' => 'id')),
             'inverseJoinColumns' => array(array('name' => 'comment_id', 'referencedColumnName' => 'id')),
         ),
     ));
     $builder = new BaseActiveRecord($metadata);
     eval('?>' . $builder->getCode());
 }
Esempio n. 3
0
 static public function setUpBeforeClass()
 {
     $metadata = new ClassMetadataInfo('Propel\\Tests\\Builder\\ORM\\Author');
     $metadata->setTableName('author');
     $metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_AUTO);
     $metadata->mapField(array('fieldName' => 'id', 'type' => 'integer', 'id' => true));
     $metadata->mapField(array('fieldName' => 'firstName', 'type' => 'string', 'nullable' => true));
     $metadata->mapField(array('fieldName' => 'lastName', 'type' => 'string', 'nullable' => true));
     $metadata->mapField(array('fieldName' => 'comment', 'type' => 'string', 'default' => 'no comment'));
     $builder = new BaseActiveRecord($metadata);
     eval('?>' . $builder->getCode());
     self::$metadata = $metadata;
 }
Esempio n. 4
0
$config = new Configuration();
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache);
$driverImpl = new XmlDriver(__DIR__ . '/fixtures');
$config->setMetadataDriverImpl($driverImpl);
$config->setProxyDir(__DIR__ . '/Proxies');
$config->setProxyNamespace('Proxies');
$config->setClassMetadataFactoryName('Propel\Mapping\DisconnectedClassMetadataFactory');

$connectionOptions = array(
    'driver' => 'pdo_sqlite',
    'path' => 'database.sqlite'
);

$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);
$cmf = $em->getMetadataFactory();

$generator = new Generator();
foreach ($cmf->getAllMetadata() as $metadata) {
    $builder = new BaseActiveRecord($metadata);
    $builder->setMappingDriver(BaseActiveRecord::MAPPING_STATIC_PHP | BaseActiveRecord::MAPPING_ANNOTATION);
    $builder->setAnnotationPrefix('orm');
    $generator->addBuilder($builder);
    $generator->addBuilder(new ActiveRecord($metadata));
}
echo "Generating classes for xml schemas...\n";
$generator->writeClasses(__DIR__ . '/fixtures');
echo "Preparing the SQLite database...\n";
$schemaTool = new SchemaTool($em);
$schemaTool->createSchema($cmf->getAllMetadata());
echo "Bootstrap complete\n";
Esempio n. 5
0
    'joinColumns' => array(
        array('name' => 'author_id', 'referencedColumnName' => 'id')
    ),
));
$metadata->mapManyToMany(array(
    'fieldName' => 'comments',
    'targetEntity' => 'Doctrine\Tests\ORM\Tools\EntityGeneratorComment',
    'joinTable' => array(
        'name' => 'book_comment',
        'joinColumns' => array(array('name' => 'book_id', 'referencedColumnName' => 'id')),
        'inverseJoinColumns' => array(array('name' => 'comment_id', 'referencedColumnName' => 'id')),
    ),
));
$metadata->addLifecycleCallback('loading', 'postLoad');
$metadata->addLifecycleCallback('willBeRemoved', 'preRemove');
$metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO);
$metadata->setChangeTrackingPolicy(ClassMetadataInfo::CHANGETRACKING_DEFERRED_EXPLICIT);

$builder = new BaseActiveRecord($metadata);

$builder->setMappingDriver(BaseActiveRecord::MAPPING_STATIC_PHP | BaseActiveRecord::MAPPING_ANNOTATION);
$builder->setAnnotationPrefix('orm');

// using custom templates to tweak EntityManager
$builder->addTemplateDir(__DIR__ . '/templates');

// using extensions
$builder->addExtension(new Timestampable());
$builder->addExtension(new GenerationTimestamp());

echo $builder->getCode();