我一直在玩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。