Add recipe for sonata-project/classification-bundle

This commit is contained in:
Andrey F. Mindubaev
2018-06-05 23:20:53 +03:00
parent 1939cca08e
commit 3244cf4410
6 changed files with 271 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
sonata_classification:
class:
category: App\Entity\SonataClassificationCategory
collection: App\Entity\SonataClassificationCollection
context: App\Entity\SonataClassificationContext
tag: App\Entity\SonataClassificationTag
media: App\Entity\SonataMediaMedia

View File

@@ -0,0 +1,9 @@
{
"bundles": {
"Sonata\\ClassificationBundle\\SonataClassificationBundle": ["all"]
},
"copy-from-recipe": {
"config/": "%CONFIG_DIR%/",
"src/": "%SRC_DIR%/"
}
}

View File

@@ -0,0 +1,89 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
use Sonata\ClassificationBundle\Entity\BaseCategory;
use Sonata\MediaBundle\Model\MediaInterface;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table(name="classification__category")
* @ORM\HasLifecycleCallbacks
*/
class SonataClassificationCategory extends BaseCategory
{
/**
* @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\SonataClassificationCategory",
* mappedBy="parent", cascade={"persist"}, orphanRemoval=true
* )
* @ORM\OrderBy({"position"="ASC"})
*
* @var SonataClassificationCategory[]
*/
protected $children;
/**
* @ORM\ManyToOne(
* targetEntity="App\Entity\SonataClassificationCategory",
* inversedBy="children", cascade={"persist", "refresh", "merge", "detach"}
* )
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")
*
* @var SonataClassificationCategory
*/
protected $parent;
/**
* @ORM\ManyToOne(
* targetEntity="App\Entity\SonataClassificationContext",
* cascade={"persist"}
* )
* @ORM\JoinColumn(name="context", referencedColumnName="id", nullable=false)
* @Assert\NotNull()
*
* @var SonataClassificationContext
*/
protected $context;
public function getId()
{
return $this->id;
}
final public function setMedia(MediaInterface $media = null)
{
parent::setMedia($media);
}
/**
* @ORM\PrePersist
*/
public function prePersist(): void
{
parent::prePersist();
}
/**
* @ORM\PreUpdate
*/
public function preUpdate(): void
{
parent::preUpdate();
}
}

View File

@@ -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\ClassificationBundle\Entity\BaseCollection;
/**
* @ORM\Entity
* @ORM\Table(name="classification__collection")
* @ORM\HasLifecycleCallbacks
*/
class SonataClassificationCollection extends BaseCollection
{
/**
* @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\SonataClassificationContext",
* cascade={"persist"}
* )
* @ORM\JoinColumn(name="context", referencedColumnName="id", nullable=false)
*
* @var SonataClassificationContext
*/
protected $context;
public function getId()
{
return $this->id;
}
/**
* @ORM\PrePersist
*/
public function prePersist(): void
{
parent::prePersist();
}
/**
* @ORM\PreUpdate
*/
public function preUpdate(): void
{
parent::preUpdate();
}
}

View File

@@ -0,0 +1,48 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
use Sonata\ClassificationBundle\Entity\BaseContext;
/**
* @ORM\Entity
* @ORM\Table(name="classification__context")
* @ORM\HasLifecycleCallbacks
*/
class SonataClassificationContext extends BaseContext
{
/**
* @ORM\Id
* @ORM\Column(type="string")
* @ORM\GeneratedValue(strategy="NONE")
* // Serializer\Groups(groups={"sonata_api_read", "sonata_api_write", "sonata_search"})
*
* @var int
*/
protected $id;
public function getId()
{
return $this->id;
}
/**
* @ORM\PrePersist
*/
public function prePersist(): void
{
parent::prePersist();
}
/**
* @ORM\PreUpdate
*/
public function preUpdate(): void
{
parent::preUpdate();
}
}

View File

@@ -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\ClassificationBundle\Entity\BaseTag;
/**
* @ORM\Entity
* @ORM\Table(name="classification__tag")
* @ORM\HasLifecycleCallbacks
*/
class SonataClassificationTag extends BaseTag
{
/**
* @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\SonataClassificationContext",
* cascade={"persist"}
* )
* @ORM\JoinColumn(name="context", referencedColumnName="id", nullable=false)
*
* @var SonataClassificationContext
*/
protected $context;
public function getId()
{
return $this->id;
}
/**
* @ORM\PrePersist
*/
public function prePersist(): void
{
parent::prePersist();
}
/**
* @ORM\PreUpdate
*/
public function preUpdate(): void
{
parent::preUpdate();
}
}