📄 versionsfeedentry.class.php
字号:
<?php /** * Single (version) entry of www.ProjectPier version feed * * @version 1.0 * @http://www.projectpier.org/ */ final class VersionsFeedEntry { /** * Is this version loaded from the SimpleXMLNode * * @var boolean */ private $is_loaded = false; /** * Version number * * @var string */ private $version_number; /** * Is this version stable * * @var boolean */ private $is_stable; /** * Details page URL * * @var string */ private $details_url; /** * Product signaturre, usualy product name + version number * * @var string */ private $signature; /** * Release notes - short info about this version * * @var string */ private $release_notes; /** * Release date - time when this version become available * * @var DateTimeValue */ private $release_date; /** * URL to change log * * @var string */ private $change_log_url; /** * Array of download links * * @var array */ private $download_links; /** * Construct the VersionsFeedEntry * * @param SimpleXMLElement $node * @return VersionsFeedEntry */ function __construct(SimpleXMLElement $node) { $this->setIsLoaded($this->read($node)); } // __construct // --------------------------------------------------- // Utils // --------------------------------------------------- /** * Returns true if this version is newer than input version * * @param string $version Input version * @return boolean */ function isNewerThan($version) { return version_compare($this->getVersionNumber(), $version) > 0; } // isNewerThan /** * Read the values from XML node * * @param SimpleXMLElement $node * @return boolean */ function read(SimpleXMLElement $node) { $this->setVersionNumber($node['number']); $this->setIsStable(isset($node['stable']) && ($node['stable'] == 'stable')); $this->setDetailsUrl($node->details_url); $this->setSignature($node->signature); $this->setReleaseNotes($node->release_notes); $this->setReleaseDate(DateTimeValueLib::makeFromString((string) $node->release_date)); $this->setChangeLogUrl($node->change_log); if ($node->download_links->children() instanceof SimpleXMLElement) { $download_links = array(); foreach ($node->download_links->children() as $link_node) { $download_link = new VersionsFeedDownloadLink($link_node); if ($download_link->isLoaded()) { $download_links[] = $download_link; } } // foreach $this->download_links = count($download_links) ? $download_links : null; } // if return true; } // read // --------------------------------------------------- // Getters and setters // --------------------------------------------------- /** * Get is_loaded * * @param null * @return boolean */ function isLoaded() { return $this->is_loaded; } // isLoaded /** * Set is_loaded value * * @param boolean $value * @return null */ private function setIsLoaded($value) { $this->is_loaded = $value; } // setIsLoaded /** * Get version_number * * @param null * @return string */ function getVersionNumber() { return $this->version_number; } // getVersionNumber /** * Set version_number value * * @param string $value * @return null */ private function setVersionNumber($value) { $this->version_number = (string) $value; } // setVersionNumber /** * Get is_stable * * @param null * @return boolean */ function getIsStable() { return $this->is_stable; } // getIsStable /** * Set is_stable value * * @param boolean $value * @return null */ private function setIsStable($value) { $this->is_stable = (boolean) $value; } // setIsStable /** * Get details_url * * @param null * @return string */ function getDetailsUrl() { return $this->details_url; } // getDetailsUrl /** * Set details_url value * * @param string $value * @return null */ private function setDetailsUrl($value) { $this->details_url = (string) $value; } // setDetailsUrl /** * Get signature * * @param null * @return string */ function getSignature() { return $this->signature; } // getSignature /** * Set signature value * * @param string $value * @return null */ private function setSignature($value) { $this->signature = (string) $value; } // setSignature /** * Get release_notes * * @param null * @return string */ function getReleaseNotes() { return $this->release_notes; } // getReleaseNotes /** * Set release_notes value * * @param string $value * @return null */ private function setReleaseNotes($value) { $this->release_notes = (string) $value; } // setReleaseNotes /** * Get release_date * * @param null * @return DateTimeValue */ function getReleaseDate() { return $this->release_date; } // getReleaseDate /** * Set release_date value * * @param DateTimeValue $value * @return null */ private function setReleaseDate($value) { if ($value instanceof DateTimeValue) { $this->release_date = $value; } } // setReleaseDate /** * Get change_log_url * * @param null * @return string */ function getChangeLogUrl() { return $this->change_log_url; } // getChangeLogUrl /** * Set change_log_url value * * @param string $value * @return null */ private function setChangeLogUrl($value) { $this->change_log_url = (string) $value; } // setChangeLogUrl /** * Return array of download links extracted from this version * * @param void * @return array */ function getDownloadLinks() { return $this->download_links; } // getDownloadLinks /** * Return specific download link by format * * @param string $format * @return VersionsFeedDownloadLink */ function getDownloadLinkByFormat($format) { $search_for = trim(strtolower($format)); $download_links = $this->getDownloadLinks(); if (is_array($download_links)) { foreach ($download_links as $download_link) { if ($download_link->getFormat() == $search_for) { return $download_link; } } // if } // if return null; } // getDownloadLinkByFormat } // VersionsFeedEntry?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -