Я пытаюсь настроить Doctrine 2.6 в простом приложении REST API с использованием MySQL.Я также новичок в Doctrine или ORM в целом, но не новичок в PHP.
Все отлично работает из коробки, я начинаю с простого User
класса, который находится в
entities/User.php
<?php
namespace MyApp\Entities;
/**
* @Entity
* @Table(name="user")
*/
class User
{
/**
* @Id
* @GeneratedValue
* @Column(type="smallint")
*/
private $id;
}
Моя конфигурация начальной загрузки:
// Setup Doctrine
$configuration = Setup::createAnnotationMetadataConfiguration(
$paths = [__DIR__ . '/entities'],
$isDevMode = true
);
Для генерации геттеров и сеттеров я запускаю
php vendor/bin/doctrine orm:generate-entities ./entities/
...который генерирует классы, как я и ожидал, но они заканчиваются на entities/MyApp/Entities/User.php
.
Теперь я не уверен, стоит ли мне хотеть, чтобы команда обновила исходный файл (entities/User.php
), который добавляет геттеры иустанавливает его и сохраняет аннотации, или, если он предпочитает сохранить исходный файл без изменений и создать отдельный файл для использования в приложении.Последний не сохраняет аннотации и содержит только аннотации phpdoc.
В любом случае, я бы хотел сохранить сгенерированный файл вне подпапки MyApp/Entities/
, либо оставив его в entities/User.php
или что-то вродеgenerated_entities/User.php
(и использовать автозагрузчик composer для загрузки их в правильное пространство имен), но orm:generate-entities
всегда выводит файл с глубоким вложением.Есть ли способ настроить команду или доктрину, чтобы избежать этого?