bit3/contao-doctrine-orm

此包已被废弃,不再维护。作者建议使用 ContaoBlackForest/contao-doctrine-orm 包。

Contao CMS 的 Doctrine ORM

安装次数: 1,394

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 2

分支: 1

类型:contao-module

2.3.2 2015-06-10 06:41 UTC

README

此扩展为 Doctrine ORM 提供了 Contao Open Source CMS。它通过服务 $container['doctrine.orm.entityManager'] 提供实体管理器。要在 Contao 数据库框架中使用 Doctrine 连接,请使用 bit3/contao-doctrine-dbal-driver

实体映射

要注册实体表,请添加到您的 config.php

$GLOBALS['DOCTRINE_ENTITIES'][] = 'orm_my_entity_type';

表名将被转换为 MyEntityType

可以通过将 表名前缀 映射到 类命名空间 来映射自定义命名空间

$GLOBALS['DOCTRINE_ENTITY_NAMESPACE_MAP']['orm_my_entity'] = 'My\Entity';

现在表名将被转换为 My\Entity\Type

当使用 DOCTRINE_ENTITY_NAMESPACE_MAP 进行表名转换时,数组 DOCTRINE_ENTITY_NAMESPACE_ALIAS 用于定义 doctrine 命名空间别名。

$GLOBALS['DOCTRINE_ENTITY_NAMESPACE_ALIAS']['My'] = 'My\Entity';

现在您可以使用 My:Type 而不是 My\Entity\Type 作为实体名称。

通过 DCA 配置实体

<?php

$GLOBALS['TL_DCA']['...'] = array(
	'entity' => array(
		// (optional) Repository class name
		'repositoryClass' => 'MyEntityRepositoryClassName',

		// (optional) ID generator type
		'idGenerator' => \Doctrine\ORM\Mapping\ClassMetadataInfo::GENERATOR_TYPE_UUID,

		// (optional) Index definition
		'indexes' => array(
			'idx_name' => array('column_one', 'column_two', '...'),
		),

		// (optional) Unique constraints
		'uniques' => array(
			'unique_name' => array('column_one', 'column_two', '...'),
		),
	),
	'fields' => array(
		'...' => array(
			'field' => array(
				'type' => (string),
				// do not set fieldName!
				'
			),
		),
	),
);

Contao 钩子

$GLOBALS['TL_HOOKS']['prepareDoctrineEntityManager'] = function(\Doctrine\ORM\Configuration &$config) { ... } 在创建实体管理器之前调用。