Php 条令注释“@条令\ORM\Annotation\Entity“;类中不存在或无法自动加载

Php 条令注释“@条令\ORM\Annotation\Entity“;类中不存在或无法自动加载,php,doctrine-orm,orm,doctrine,Php,Doctrine Orm,Orm,Doctrine,我完全遵循教程 我已经创建了Product类(通过从教程中复制/粘贴,以确保没有输入错误),但是当我运行 vendor/bin/doctrine orm:schema-tool:create 我没有元数据类要处理。这似乎是因为Setup::createAnnotationMetadataConfiguration的useSimpleAnotationReader参数默认为true 因此,如果我将其更改为false: $config = Setup::createAnnotationMetada

我完全遵循教程

我已经创建了
Product
类(通过从教程中复制/粘贴,以确保没有输入错误),但是当我运行

vendor/bin/doctrine orm:schema-tool:create
我没有元数据类要处理。这似乎是因为
Setup::createAnnotationMetadataConfiguration
useSimpleAnotationReader
参数默认为
true

因此,如果我将其更改为
false

$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode, null, null, false);
运行上面的
schema工具:create
命令现在返回:

[Doctrine\Common\Annotations\AnnotationException]
[Semantical Error] The annotation "@Doctrine\ORM\Annotation\Entity" in class Product does not exist, or could not be auto-loaded.
它应该在何时执行,然后转储生成的SQL

从某处和其他地方搜索,似乎这个问题通常是由于在注释中使用正向斜杠而不是反向斜杠(我没有)或产品实体中的其他打字错误(我复制/粘贴),或者将条令作为更广泛框架的一部分(Zend,Symfony)

My
Product.php

<?php
// src/Product.php

use Doctrine\ORM\Annotation as ORM;

/**
 * @ORM\Entity @ORM\Table(name="products")
 **/
class Product
{
    /** @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue **/
    protected $id;

    /** @ORM\Column(type="string") **/
    protected $name;

    public function getId()
    {
        return $this->id;
    }

    public function getName()
    {
        return $this->name;
    }

    public function setName($name)
    {
        $this->name = $name;
    }
}

尝试使用以下语句:

use Doctrine\ORM\Mapping as ORM;
而不是:

use Doctrine\ORM\Annotation as ORM;

太神了非常感谢。难以置信的是,这些文件是错误的。作为一个刚刚开始学习教义的人,你是否可以添加一个解释(这对其他人来说并不明显!)?嗨@AdamHopkinson唯一的问题是doc已经过时了:(