Пользовательский пакет Symfony с сущностями

Я хочу создать пакет symfony для системы ролей и прав. Я хочу предоставить пользователю этой связки необходимые сущности. Я хочу сделать так, чтобы пользователь все еще мог редактировать сущности. Другими словами, я хочу переместить сущности из моего пакета в проект symfony конечного пользователя (src/Entity/). Таким образом, конечный пользователь все еще может настраивать объекты, если он или она пожелает это сделать.

Я довольно много гуглил, и единственное, что я нашел, это рецепты symfony и пользовательский класс symfony-maker. Проблема с рецептами в том, что вы должны получить одобрение Symfony. С другой стороны, комплект нестандартного производителя смущает меня до бесконечности.

Есть ли у кого-нибудь из вас несколько советов? Это мой первый раз, когда я делаю бандл Symfony, и хороших ресурсов не так много.

Вы можете расширять сущности внутри вашего проекта!

Alexandre Painchaud 11.12.2020 13:59

Спасибо @AlexandrePainchaud, я попробую, но у меня есть один вопрос. Вам по-прежнему нужно определять все свойства и методы в подклассе или вы просто делаете все свойства и методы защищенными в исходной сущности (те, что внутри моего пакета)?

Hythereon 11.12.2020 14:11

я написал ответ, если он вам поможет, не забудьте отметить его как решенный;)

Alexandre Painchaud 11.12.2020 14:15

Есть причина, по которой вы не найдете много примеров такого рода вещей. Доктрина не подходит для такого рода вещей. Я вижу, вы приняли приведенный ниже ответ суперкласса, который приведен ниже, и это здорово. Но есть много ограничений на наследование Doctrine, с которыми вы, я полагаю, быстро столкнетесь. Внимательно прочитайте и поймите ссылку в ответе. Можете попробовать что-нибудь попроще для своего первого комплекта.

Cerad 11.12.2020 14:51

Я понимаю что ты имеешь в виду. Я думал просто создать объекты и включить их в пакет. Затем я хочу создать команду symfony, которая копирует файлы из моего пакета в папку Entities конечного пользователя. Что вы думаете об этом @Cerad?

Hythereon 12.12.2020 16:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
563
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как я уже говорил, вы можете расширять сущности Doctrine (https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/inheritance-mapping.html)

/** @ORM\MappedSuperclass */
class A {
   /** @ORM\Column(type = "integer") */
   protected $id;

   /** @ORM\Column(type = "string") */
   protected $title;
}
/** @ORM\Entity */
class B extends A {
   /** @ORM\Column(type = "string") */
   protected $author;
}

Таким образом, вам не нужно определять все свойства.

Другие вопросы по теме