<?php
|
|
|
|
namespace App\ResponseHandler;
|
|
|
|
/**
|
|
* Handle Response of a Rss Feed,
|
|
* response will parsed to SimpleXMLElement
|
|
* each item in a channel will be run through actions
|
|
*
|
|
*
|
|
*/
|
|
class Rss extends ResponseHandler
|
|
{
|
|
/**
|
|
* getting data from
|
|
*
|
|
*
|
|
* @return object
|
|
*
|
|
*/
|
|
public function get()
|
|
{
|
|
$this->response = Http::withHeaders([
|
|
"Content-Type" => "text/xml;charset=utf-8"
|
|
])->get($this->source->url);
|
|
|
|
return $this->response;
|
|
}
|
|
|
|
/**
|
|
* handle response
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
public function handle()
|
|
{
|
|
$xml = new SimpleXMLElement($this->response->body());
|
|
|
|
foreach($xml->channel->item as $item) {
|
|
foreach($this->actions as $action) {
|
|
$action->handle($item);
|
|
}
|
|
}
|
|
}
|
|
}
|