This course is still being released! Check back later for more chapters.

Get Notified About this Course!

We will send you messages regarding this course only
and nothing else, we promise.
You can unsubscribe anytime by emailing us at:
privacy@symfonycasts.com
Login to bookmark this video
Buy Access to Course
08.

Extender la entidad de nuestro bundle

|

Share this awesome video!

|

Keep on Learning!

With a Subscription, click any sentence in the script to jump to that part of the video!

Login Subscribe

Nuestro bundle tiene una superclase abstracta mapeada Translation y está registrada en Doctrine. Es hora de crear la entidad real Translation en nuestra aplicación.

En tu terminal, ejecuta:

symfony console make:entity

Para el nombre de la clase, utiliza Translation. Todas las propiedades están definidas en la clase abstracta Translation del bundle, así que pulsa enter para terminar.

La entidad de traducción real

En tu editor, abre nuestra nueva entidad en src/Entity/Translation.php:

22 lines | src/Entity/Translation.php
// ... lines 1 - 8
#[ORM\Entity(repositoryClass: TranslationRepository::class)]
class Translation extends BaseTranslation
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
public function getId(): ?int
{
return $this->id;
}
}

Muy bien, ¡allá vamos! Se nos ha añadido el ID, que es todo lo que necesitamos. Ahora vamos a extender la clase abstracta Translation del bundle. Como tiene el mismo nombre, necesitamos importarla con un alias.

En la parte superior, escribe use Translation y elige el de nuestro bundle. Después,as BaseTranslation. Extiéndelo con extends BaseTranslation.

Genial, ¡ya hemos terminado!

Eventualmente, proporcionaremos una receta para que los usuarios finales no tengan que hacer este paso.

Hacer una migración

¿Nueva entidad? ¡Nueva migración!

Vuelve al terminal y ejecuta:

symfony console make:migration

Echa un vistazo. Abre el nuevo archivo de migración en el directorio migrations/.

Comprueba el método up(). Está creando la tabla translation con laid, pero también todas las columnas de la superclase mapeada de nuestro bundle. ¡Perfecto!

Añade una descripción: Add Translation entity:

32 lines | migrations/Version20250820132819.php
// ... lines 1 - 12
final class Version20250820132819 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add Translation entity';
}
// ... lines 19 - 30
}

Es hora de ejecutarlo. En tu terminal, ejecuta:

symfony console doctrine:migrations:migrate

Elige yes, y... ¡boom! ¡Base de datos migrada!

Vale, ya tenemos la entidad en nuestra aplicación, pero para que nuestro bundle pueda realizar consultas en su nombre, el bundle necesita conocerla. Un trabajo perfecto para la configuración del bundle: ¡Eso a continuación!