1212namespace Orbitale \Bundle \CmsBundle \Entity ;
1313
1414use Doctrine \Common \Collections \ArrayCollection ;
15- use Doctrine \ORM \Event \LifecycleEventArgs ;
16- use Doctrine \ORM \Mapping as ORM ;
15+ use Doctrine \ORM \Event \PreRemoveEventArgs ;
1716use Symfony \Bridge \Doctrine \Validator \Constraints \UniqueEntity ;
1817use Symfony \Component \String \Slugger \AsciiSlugger ;
1918use Symfony \Component \Validator \Constraints as Assert ;
2019
2120/**
2221 * @UniqueEntity("slug")
23- * @ORM\HasLifecycleCallbacks()
24- * @ORM\MappedSuperclass(repositoryClass="Orbitale\Bundle\CmsBundle\Repository\PageRepository")
2522 */
23+ #[UniqueEntity("slug " )]
2624abstract class Page
2725{
2826 /**
@@ -33,134 +31,125 @@ abstract public function getId();
3331 /**
3432 * @var string
3533 *
36- * @ORM\Column(name="title", type="string", length=255)
37- *
3834 * @Assert\Type("string")
3935 * @Assert\NotBlank()
4036 */
37+ #[Assert \Type("string " )]
38+ #[Assert \NotBlank]
4139 protected $ title ;
4240
4341 /**
4442 * @var string
4543 *
46- * @ORM\Column(name="slug", type="string", length=255, unique=true)
47- *
4844 * @Assert\Type("string")
4945 * @Assert\NotBlank()
5046 */
47+ #[Assert \Type("string " )]
48+ #[Assert \NotBlank]
5149 protected $ slug ;
5250
5351 /**
5452 * @var string
5553 *
56- * @ORM\Column(name="page_content", type="text", nullable=true)
57- *
5854 * @Assert\Type("string")
5955 */
56+ #[Assert \Type("string " )]
6057 protected $ content ;
6158
6259 /**
6360 * @var string
6461 *
65- * @ORM\Column(name="meta_description", type="string", length=255, nullable=true)
66- *
6762 * @Assert\Type("string")
6863 */
64+ #[Assert \Type("string " )]
6965 protected $ metaDescription ;
7066
7167 /**
7268 * @var string
7369 *
74- * @ORM\Column(name="meta_title", type="string", length=255, nullable=true)
75- *
7670 * @Assert\Type("string")
7771 */
72+ #[Assert \Type("string " )]
7873 protected $ metaTitle ;
7974
8075 /**
8176 * @var string
8277 *
83- * @ORM\Column(name="meta_keywords", type="string", length=255, nullable=true)
84- *
8578 * @Assert\Type("string")
8679 */
80+ #[Assert \Type("string " )]
8781 protected $ metaKeywords ;
8882
8983 /**
9084 * @var null|Category
9185 *
9286 * @Assert\Type(Category::class)
9387 */
88+ #[Assert \Type(Category::class)]
9489 protected $ category ;
9590
9691 /**
9792 * @var string
9893 *
99- * @ORM\Column(name="css", type="text", nullable=true)
100- *
10194 * @Assert\Type("string")
10295 */
96+ #[Assert \Type("string " )]
10397 protected $ css ;
10498
10599 /**
106100 * @var string
107101 *
108- * @ORM\Column(name="js", type="text", nullable=true)
109- *
110102 * @Assert\Type("string")
111103 */
104+ #[Assert \Type("string " )]
112105 protected $ js ;
113106
114107 /**
115108 * @var \DateTimeImmutable
116109 *
117- * @ORM\Column(name="created_at", type="datetime_immutable")
118- *
119110 * @Assert\Type(\DateTimeImmutable::class)
120111 */
112+ #[Assert \Type(\DateTimeImmutable::class)]
121113 protected $ createdAt ;
122114
123115 /**
124116 * @var bool
125117 *
126- * @ORM\Column(name="enabled", type="boolean")
127- *
128118 * @Assert\Type("bool")
129119 */
120+ #[Assert \Type("bool " )]
130121 protected $ enabled = false ;
131122
132123 /**
133124 * @var bool
134125 *
135- * @ORM\Column(name="homepage", type="boolean")
136- *
137126 * @Assert\Type("bool")
138127 */
128+ #[Assert \Type("bool " )]
139129 protected $ homepage = false ;
140130
141131 /**
142132 * @var string
143133 *
144- * @ORM\Column(name="host", type="string", length=255, nullable=true)
145- *
146134 * @Assert\Type("string")
147135 */
136+ #[Assert \Type("string " )]
148137 protected $ host ;
149138
150139 /**
151140 * @var string
152141 *
153- * @ORM\Column(name="locale", type="string", length=6, nullable=true)
154- *
155142 * @Assert\Type("string")
156143 */
144+ #[Assert \Type("string " )]
157145 protected $ locale ;
158146
159147 /**
160148 * @var null|Page
161149 *
162150 * @Assert\Type(Page::class)
163151 */
152+ #[Assert \Type(Page::class)]
164153 protected $ parent ;
165154
166155 /**
@@ -380,23 +369,16 @@ public function getTree(string $separator = '/'): string
380369 return trim ($ tree , $ separator );
381370 }
382371
383- /**
384- * @ORM\PrePersist()
385- * @ORM\PreUpdate()
386- */
387372 public function updateSlug (): void
388373 {
389374 if (!$ this ->slug ) {
390375 $ this ->slug = mb_strtolower ((new AsciiSlugger ())->slug ($ this ->title )->toString ());
391376 }
392377 }
393378
394- /**
395- * @ORM\PreRemove()
396- */
397- public function onRemove (LifecycleEventArgs $ event ): void
379+ public function onRemove (PreRemoveEventArgs $ event ): void
398380 {
399- $ em = $ event ->getEntityManager ();
381+ $ em = $ event ->getObjectManager ();
400382 if (count ($ this ->children )) {
401383 foreach ($ this ->children as $ child ) {
402384 $ child ->setParent (null );
0 commit comments