$attribute_value) { if (property_exists(__CLASS__, $attribute_name)) { $instance->{$attribute_name} = $attribute_value; } } $instance->_is_empty = false; return $instance; } /** * @return string */ public function getWebName() { return $this->path . '/' . $this->filename; } /** * @param $size string * @return Image */ public function getVariant($size) { if (!array_key_exists($size, $this->variants)) { $this->variants[$size] = new Image; } else { if (!is_object($this->variants[$size])) { $this->variants[$size] = self::getInstance($this->variants[$size]); } } return $this->variants[$size]; } public function getIsEmpty() { return (bool) $this->_is_empty; } public function setIsNotEmpty() { $this->_is_empty = false; } public function __toString() { $data = array(); foreach ($this as $attribute_name => $attribute_value) { $data[$attribute_name] = $attribute_value; } return json_encode($data); } }