将Doctrine 2.5
与PSR-4自动加载一起使用,并将已设计的数据库模式转换为实体类(注释)。问题是将导出的文件放在正确的目录结构中。
composer.json
{
"autoload": {
"psr-4": {
"Application\\": "src/"
}
},
"require": {
"doctrine/orm": "^2.5"
}
}
ORM:转换映射
vendor/bin/doctrine orm:convert-mapping \
--namespace='Application\Entity\' \
--force \
--from-database \
annotation \
src/
运行此命令将在Application
中添加src/
目录。
生成的类文件具有正确的命名空间,但在PSR-4标准的错误目录中。
<?php
namespace Application\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* User
*
* @ORM\Table(name="user")
* @ORM\Entity
*/
class User
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
}
有没有办法在没有辅助命令的情况下解决这个问题?
答案 0 :(得分:1)
我没有看到来自doctrine cli
的任何选项。我只是看到了从Application模块修改目录结构的解决方案。在这里,我修改了composer.json
{
"autoload": {
"psr-4": {
"Application\\": "src/Application/"
}
},
"require": {
"doctrine/orm": "^2.5"
}
}
所有Application
模块源代码将再次置于src/Application
而不是src/
。因此,当doctrine cli
在Application/Entity
中创建目录src
时,它将与yor psr-4
Autoloader匹配。