作曲家自动加载名称空间错误



我一直在玩Slim 3和Doctrine,但没有取得太大进步,因为我无法为自己的一生而无法奏效。

项目结构:

-src
  |-App
    |-index.php
    |-Entity
      |-User.php
  |-vendor

composer.json

{
    "require": {
        "slim/slim": "^3.9",
        "doctrine/orm": "v2.5.9"
    },
    "autoload": {
        "psr-0":{
            "App\": "src/App"
        }
    }
}

index.php

<?php
use PsrHttpMessageServerRequestInterface as Request;
use PsrHttpMessageResponseInterface as Response;
use AppEntityUser;
require '../vendor/autoload.php';
$user = new User();
....

,但这导致

Fatal error: Class 'AppEntityUser' not found...

我尝试了使用PSR-4的一些变体,但仍然没有成功,任何帮助都将不胜感激。

更新:user.php

namespace AppEntity;
use AppEntity;
use DoctrineORMMapping;
/**
 * @Entity
 * @Table(name="users")
 */
class User
{
    /**
     * @var integer
     *
     * @Id
     * @Column(name="id", type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
     * @var string
     * @Column(type="string", length=64)
     */
    protected $name;
    /**
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }
    /**
     * @param int $id
     */
    public function setId($id)
    {
        $this->id = $id;
    }
    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }
    /**
     * @param string $name
     */
    public function setName($name)
    {
        $this->name = $name;
    }

}

调整自动加载配置以使用PSR-4自动加载器代替PSR-0自动加载器:

{
    "autoload": {
        "psr-4":{
            "App\": "src/App/"
        }
    }
}

有关参考,请参见https://getcomposer.org/doc/04-schema.md#psr-4。

相关内容

  • 没有找到相关文章

最新更新