Использование Doctrine orm: generate-entity с пространствами имен - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь настроить 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 всегда выводит файл с глубоким вложением.Есть ли способ настроить команду или доктрину, чтобы избежать этого?

...