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