如何在Doctrine2中安装gedmo-extensions?

时间:2011-12-19 14:25:01

标签: php orm tree doctrine-orm behavior

我正在尝试在Doctrine2(版本2.1.3)中安装"gedmo" behaviourial extensions (version 2.1.0-DEV)

没有扩展,一切正常。但是,当我添加annotationdriver来读取@ gedmo-annotations时会抛出诸如“Uncaught exception 'Doctrine\ORM\Mapping\MappingException' with message 'Class User2 is not a valid entity or mapped super class”之类的错误。 这是de User2-entity:

<?php

use \Doctrine\ORM\Mapping as ORM;

/** @ORM\Entity  */
class User2 {

    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    private $id;

    /** @ORM\Column(length=255) */
    private $username;
}

因为即使在未使用@gemdo的实体中也会出现这些错误,我怀疑它与注释驱动程序的配置方式有关。在我的bootstrap文件中添加了注释驱动程序(我只会使用树扩展名):

$reader = new \Doctrine\Common\Annotations\AnnotationReader();
$annotationDriver = new \Doctrine\ORM\Mapping\Driver\AnnotationDriver($reader);

$chain = new \Doctrine\ORM\Mapping\Driver\DriverChain;
$chain->addDriver($annotationDriver, 'Gedmo\Tree\Entity');

$config->setMetadataDriverImpl($chain);

几个问题:

  1. 我应该为ORM注释添加驱动程序吗?
  2. User2级有什么问题吗?
  3. 如何才能获得更具体的用户错误,以便找到问题的确切原因?
  4. 简而言之:我怎样才能使@orm和@gedmo注释有效?

1 个答案:

答案 0 :(得分:2)

最近添加了example,以展示如何使用扩展配置裸实体管理器,而不使用任何框架。 您可以按照底部的readme了解如何最初设置