ArticleGroup.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace internship\bo;
  3. use n2n\reflection\ObjectAdapter;
  4. use n2n\persistence\orm\attribute\OneToMany;
  5. use n2n\persistence\orm\CascadeType;
  6. class ArticleGroup extends ObjectAdapter implements \JsonSerializable{
  7. private int $id;
  8. private string $name;
  9. #[OneToMany(Article::class, 'articleGroup', CascadeType::PERSIST)]
  10. private \ArrayObject $articles;
  11. /**
  12. * @return int
  13. */
  14. public function getId(): int {
  15. return $this->id;
  16. }
  17. /**
  18. * @param int $id
  19. */
  20. public function setId(int $id): void {
  21. $this->id = $id;
  22. }
  23. /**
  24. * @return string
  25. */
  26. public function getName(): string {
  27. return $this->name;
  28. }
  29. /**
  30. * @param string name
  31. */
  32. public function setName(string $name): void {
  33. $this->name = $name;
  34. }
  35. /**
  36. * @return \ArrayObject
  37. */
  38. public function getArticles(): \ArrayObject{
  39. return $this->articles;
  40. }
  41. /**
  42. * @param \ArrayObject articles
  43. */
  44. public function setArticles(\ArrayObject $articles): void{
  45. $this->articles = $articles;
  46. }
  47. function jsonSerialize(): mixed {
  48. return [
  49. 'id' => $this->id,
  50. 'name' => $this->name,
  51. 'articles' => $this->articles->getArrayCopy()
  52. ];
  53. }
  54. }