add composer's vendor directory
This commit is contained in:
parent
01a3860d73
commit
60b094d5fa
745 changed files with 56017 additions and 1 deletions
vendor/fguillot/picofeed/lib/PicoFeed/Serialization
142
vendor/fguillot/picofeed/lib/PicoFeed/Serialization/SubscriptionParser.php
vendored
Normal file
142
vendor/fguillot/picofeed/lib/PicoFeed/Serialization/SubscriptionParser.php
vendored
Normal file
|
@ -0,0 +1,142 @@
|
|||
<?php
|
||||
|
||||
namespace PicoFeed\Serialization;
|
||||
|
||||
use SimpleXMLElement;
|
||||
|
||||
/**
|
||||
* Class SubscriptionParser
|
||||
*
|
||||
* @package PicoFeed\Serialization
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class SubscriptionParser
|
||||
{
|
||||
/**
|
||||
* @var Subscription
|
||||
*/
|
||||
protected $subscription;
|
||||
|
||||
/**
|
||||
* @var SimpleXMLElement
|
||||
*/
|
||||
private $outlineElement;
|
||||
|
||||
/**
|
||||
* @var SimpleXMLElement
|
||||
*/
|
||||
private $parentElement;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @access public
|
||||
* @param SimpleXMLElement $parentElement
|
||||
* @param SimpleXMLElement $outlineElement
|
||||
*/
|
||||
public function __construct(SimpleXMLElement $parentElement, SimpleXMLElement $outlineElement)
|
||||
{
|
||||
$this->parentElement = $parentElement;
|
||||
$this->outlineElement = $outlineElement;
|
||||
$this->subscription = new Subscription();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get object instance
|
||||
*
|
||||
* @static
|
||||
* @access public
|
||||
* @param SimpleXMLElement $parentElement
|
||||
* @param SimpleXMLElement $outlineElement
|
||||
* @return SubscriptionParser
|
||||
*/
|
||||
public static function create(SimpleXMLElement $parentElement, SimpleXMLElement $outlineElement)
|
||||
{
|
||||
return new static($parentElement, $outlineElement);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse subscription entry
|
||||
*
|
||||
* @access public
|
||||
* @return Subscription
|
||||
*/
|
||||
public function parse()
|
||||
{
|
||||
$this->subscription->setCategory($this->findCategory());
|
||||
$this->subscription->setTitle($this->findTitle());
|
||||
$this->subscription->setFeedUrl($this->findFeedUrl());
|
||||
$this->subscription->setSiteUrl($this->findSiteUrl());
|
||||
$this->subscription->setType($this->findType());
|
||||
$this->subscription->setDescription($this->findDescription());
|
||||
|
||||
return $this->subscription;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find category.
|
||||
*
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
protected function findCategory()
|
||||
{
|
||||
return isset($this->parentElement['text']) ? (string) $this->parentElement['text'] : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Find title.
|
||||
*
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
protected function findTitle()
|
||||
{
|
||||
return isset($this->outlineElement['title']) ? (string) $this->outlineElement['title'] : (string) $this->outlineElement['text'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Find feed url.
|
||||
*
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
protected function findFeedUrl()
|
||||
{
|
||||
return (string) $this->outlineElement['xmlUrl'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Find site url.
|
||||
*
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
protected function findSiteUrl()
|
||||
{
|
||||
return isset($this->outlineElement['htmlUrl']) ? (string) $this->outlineElement['htmlUrl'] : $this->findFeedUrl();
|
||||
}
|
||||
|
||||
/**
|
||||
* Find type.
|
||||
*
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
protected function findType()
|
||||
{
|
||||
return isset($this->outlineElement['version']) ? (string) $this->outlineElement['version'] :
|
||||
isset($this->outlineElement['type']) ? (string) $this->outlineElement['type'] : 'rss';
|
||||
}
|
||||
|
||||
/**
|
||||
* Find description.
|
||||
*
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
protected function findDescription()
|
||||
{
|
||||
return isset($this->outlineElement['description']) ? (string) $this->outlineElement['description'] : $this->findTitle();
|
||||
}
|
||||
}
|
Reference in a new issue