Serie.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <?php
  2. namespace Moinax\TvDb;
  3. /**
  4. * Serie object
  5. *
  6. * @package TvDb
  7. * @author Jérôme Poskin <moinax@gmail.com>
  8. */
  9. class Serie
  10. {
  11. /**
  12. * @var int
  13. */
  14. public $id;
  15. /**
  16. * @var string
  17. */
  18. public $language;
  19. /**
  20. * @var string
  21. */
  22. public $name;
  23. /**
  24. * @var string
  25. */
  26. public $banner;
  27. /**
  28. * @var string
  29. */
  30. public $overview;
  31. /**
  32. * @var \DateTime|null
  33. */
  34. public $firstAired;
  35. /**
  36. * @var string
  37. */
  38. public $imdbId;
  39. /**
  40. * @var array
  41. */
  42. public $actors = array();
  43. /**
  44. * @var string
  45. */
  46. public $airsDayOfWeek = '';
  47. /**
  48. * @var string
  49. */
  50. public $airsTime = '';
  51. /**
  52. * @var string
  53. */
  54. public $contentRating = '';
  55. /**
  56. * @var array
  57. */
  58. public $genres = array();
  59. /**
  60. * @var string
  61. */
  62. public $network = '';
  63. /**
  64. * @var float
  65. */
  66. public $rating = '';
  67. /**
  68. * @var int
  69. */
  70. public $ratingCount = 0;
  71. /**
  72. * @var int
  73. */
  74. public $runtime = 0;
  75. /**
  76. * @var string
  77. */
  78. public $status = '';
  79. /**
  80. * @var \DateTime
  81. */
  82. public $added;
  83. /**
  84. * @var int
  85. */
  86. public $addedBy;
  87. /**
  88. * @var string
  89. */
  90. public $fanArt = '';
  91. /**
  92. * @var \DateTime
  93. */
  94. public $lastUpdated;
  95. /**
  96. * @var string
  97. */
  98. public $poster = '';
  99. /**
  100. * @var string
  101. */
  102. public $zap2ItId = '';
  103. /**
  104. * @var array
  105. */
  106. public $aliasNames = array();
  107. /**
  108. * Constructor
  109. *
  110. * @access public
  111. * @param \SimpleXMLElement $data A simplexml element created from thetvdb.com's xml data for the tv show
  112. * @return \Moinax\TvDb\Serie
  113. */
  114. public function __construct($data)
  115. {
  116. $this->id = (int)$data->id;
  117. $this->language = (string)$data->Language;
  118. if(isset($data->language)) {
  119. $this->language = (string)$data->language;
  120. }
  121. $this->name = (string)$data->SeriesName;
  122. $this->banner = (string)$data->banner;
  123. $this->overview = (string)$data->Overview;
  124. $this->firstAired = (string)$data->FirstAired !== '' ? new \DateTime((string)$data->FirstAired) : null;
  125. $this->imdbId = (string)$data->IMDB_ID;
  126. $this->actors = (array)Client::removeEmptyIndexes(explode('|', (string)$data->Actors));
  127. $this->airsDayOfWeek = (string)$data->Airs_DayOfWeek;
  128. $this->airsTime = (string)$data->Airs_Time;
  129. $this->contentRating = (string)$data->ContentRating;
  130. $this->genres = (array)Client::removeEmptyIndexes(explode('|', (string)$data->Genre));
  131. $this->network = (string)$data->Network;
  132. $this->rating = (float)$data->Rating;
  133. $this->ratingCount = (int)$data->RatingCount;
  134. $this->runtime = (int)$data->Runtime;
  135. $this->status = (string)$data->Status;
  136. $this->added = new \DateTime((string)$data->added);
  137. $this->addedBy = (int)$data->addedBy;
  138. $this->fanArt = (string)$data->fanart;
  139. $this->lastUpdated = \DateTime::createFromFormat('U', (int)$data->lastupdated);
  140. $this->poster = (string)$data->poster;
  141. $this->zap2ItId = (string)$data->zap2it_id;
  142. if(isset($data->AliasNames)) {
  143. $this->aliasNames = (array)Client::removeEmptyIndexes(explode('|', (string)$data->AliasNames));
  144. }
  145. }
  146. }