Add sonata-project/media-orm-pack recipe

This commit is contained in:
Andrey F. Mindubaev
2018-05-24 01:05:05 +03:00
parent 4e63e2b763
commit 0be27d6975
5 changed files with 199 additions and 0 deletions
@@ -0,0 +1,6 @@
sonata_media:
class:
media: App\Entity\SonataMediaMedia
gallery: App\Entity\SonataMediaGallery
gallery_has_media: App\Entity\SonataMediaGalleryHasMedia
db_driver: doctrine_orm
@@ -0,0 +1,6 @@
{
"copy-from-recipe": {
"config/": "%CONFIG_DIR%/",
"src/": "%SRC_DIR%/"
}
}
@@ -0,0 +1,59 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
use Sonata\MediaBundle\Entity\BaseGallery;
/**
* @ORM\Entity
* @ORM\Table(name="media__gallery")
* @ORM\HasLifecycleCallbacks
*/
class SonataMediaGallery extends BaseGallery
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @Serializer\Groups(groups={"sonata_api_read", "sonata_api_write", "sonata_search"})
*
* @var int
*/
protected $id;
/**
* @ORM\OneToMany(
* targetEntity="App\Entity\SonataMediaGalleryHasMedia",
* mappedBy="gallery", cascade={"persist"}, orphanRemoval=true
* )
* @ORM\OrderBy({"position"="ASC"})
*
* @var SonataMediaGalleryHasMedia[]
*/
protected $galleryHasMedias;
public function getId()
{
return $this->id;
}
/**
* @ORM\PrePersist
*/
public function prePersist(): void
{
parent::prePersist();
}
/**
* @ORM\PreUpdate
*/
public function preUpdate(): void
{
parent::preUpdate();
}
}
@@ -0,0 +1,70 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
use Sonata\MediaBundle\Entity\BaseGalleryHasMedia;
/**
* @ORM\Entity
* @ORM\Table(name="media__gallery_media")
* @ORM\HasLifecycleCallbacks
*/
class SonataMediaGalleryHasMedia extends BaseGalleryHasMedia
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @Serializer\Groups(groups={"sonata_api_read", "sonata_api_write", "sonata_search"})
*
* @var int
*/
protected $id;
/**
* @ORM\ManyToOne(
* targetEntity="App\Entity\SonataMediaMedia",
* inversedBy="galleryHasMedias", cascade={"persist"}
* )
* @ORM\JoinColumn(name="media_id", referencedColumnName="id", onDelete="CASCADE")
*
* @var SonataMediaMedia
*/
protected $media;
/**
* @ORM\ManyToOne(
* targetEntity="App\Entity\SonataMediaGallery",
* inversedBy="galleryHasMedias", cascade={"persist"}
* )
* @ORM\JoinColumn(name="gallery_id", referencedColumnName="id", onDelete="CASCADE")
*
* @var SonataMediaGallery
*/
protected $gallery;
public function getId()
{
return $this->id;
}
/**
* @ORM\PrePersist
*/
public function prePersist(): void
{
parent::prePersist();
}
/**
* @ORM\PreUpdate
*/
public function preUpdate(): void
{
parent::preUpdate();
}
}
@@ -0,0 +1,58 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
use Sonata\MediaBundle\Entity\BaseMedia;
/**
* @ORM\Entity
* @ORM\Table(name="media__media")
* @ORM\HasLifecycleCallbacks
*/
class SonataMediaMedia extends BaseMedia
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @Serializer\Groups(groups={"sonata_api_read", "sonata_api_write", "sonata_search"})
*
* @var int
*/
protected $id;
/**
* @ORM\OneToMany(
* targetEntity="App\Entity\SonataMediaGalleryHasMedia",
* mappedBy="media", cascade={"persist"}, orphanRemoval=false
* )
*
* @var SonataMediaGalleryHasMedia[]
*/
protected $galleryHasMedias;
public function getId()
{
return $this->id;
}
/**
* @ORM\PrePersist
*/
public function prePersist(): void
{
parent::prePersist();
}
/**
* @ORM\PreUpdate
*/
public function preUpdate(): void
{
parent::preUpdate();
}
}