Article into objects
This commit is contained in:
parent
e8e9d1ad95
commit
9f986f78f8
26
Article.php
26
Article.php
@ -4,33 +4,23 @@ class Article {
|
|||||||
private String $nom;
|
private String $nom;
|
||||||
private String $desc;
|
private String $desc;
|
||||||
private DateTime $date;
|
private DateTime $date;
|
||||||
private String $url;
|
|
||||||
|
|
||||||
public function __construct(String $n, String $de, DateTime $da, String $u) {
|
public function __construct(String $n, String $de, DateTime $da) {
|
||||||
$this -> nom = $n;
|
$this->nom = $n;
|
||||||
$this -> desc = $de;
|
$this->desc = $de;
|
||||||
$this -> date = $da;
|
$this->date = $da;
|
||||||
$this -> url = $u;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getArticleName() {
|
public function getArticleName() : String {
|
||||||
return $this -> nom;
|
return $this -> nom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getArticleDescription() {
|
public function getArticleDescription() : String {
|
||||||
return $this -> desc;
|
return $this->desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getArticleDate() {
|
public function getArticleDate() : DateTime {
|
||||||
return $this -> date;
|
return $this -> date;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getArticleUrl() {
|
|
||||||
return $this -> url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __toString()
|
|
||||||
{
|
|
||||||
return '<ul><li>' .$this->getArticleName() . '</li><li>' .$this->getArticleDescription() . '</li><li>' .date_format($this->getArticleDate(), 'd M Y, H\hi') . '</li><li>' .$this->getArticleUrl() .'</ul>';
|
|
||||||
}
|
|
||||||
}
|
}
|
14
ArticleController.php
Normal file
14
ArticleController.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class ArticleController {
|
||||||
|
|
||||||
|
private $tabArticle = array();
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function createArticles() {
|
||||||
|
//lire fichiers
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
30
RSSArticle.php
Normal file
30
RSSArticle.php
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class RSSArticle {
|
||||||
|
private String $nom;
|
||||||
|
private DateTime $date;
|
||||||
|
private String $url;
|
||||||
|
|
||||||
|
public function __construct(String $n, DateTime $d, String $u) {
|
||||||
|
$this -> nom = $n;
|
||||||
|
$this -> date = $d;
|
||||||
|
$this -> url = $u;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getArticleName() : String {
|
||||||
|
return $this -> nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getArticleDate() : DateTime {
|
||||||
|
return $this -> date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getArticleUrl() : String {
|
||||||
|
return $this -> url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __toString()
|
||||||
|
{
|
||||||
|
return '<ul><li>' .$this->getArticleName() . '</li><li>' .date_format($this->getArticleDate(), 'd M Y') . '</li><li>' .$this->getArticleUrl() .'</ul>';
|
||||||
|
}
|
||||||
|
}
|
43
RSSArticleManager.php
Normal file
43
RSSArticleManager.php
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class RSSArticleManager {
|
||||||
|
|
||||||
|
private $tabURL = array(
|
||||||
|
"http://fetchrss.com/rss/6213baca199e171a5d6eacc26213babd69097e19dd230f73.xml",
|
||||||
|
"http://fetchrss.com/rss/6213baca199e171a5d6eacc26214b2ca9bb3286594306764.xml",
|
||||||
|
"http://fetchrss.com/rss/6213baca199e171a5d6eacc26214b5c20a15a160ea326d82.xml",
|
||||||
|
"http://fetchrss.com/rss/6213baca199e171a5d6eacc26214b6fd3f6eb80141637472.xml",
|
||||||
|
"http://fetchrss.com/rss/6213baca199e171a5d6eacc26214b7ac82763a37db6639c4.xml"
|
||||||
|
);
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function createArticles() : array {
|
||||||
|
$tabArticle = array();
|
||||||
|
|
||||||
|
foreach ($this->tabURL as $u) {
|
||||||
|
$rss = simplexml_load_file($u);
|
||||||
|
foreach ($rss->channel->item as $item){
|
||||||
|
$desc = "";
|
||||||
|
array_push($tabArticle, new RSSArticle($item->title, date_create($item->pubDate), $item->link));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $tabArticle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sortArticles(array $a) : array {
|
||||||
|
$tab = $a;
|
||||||
|
usort($tab, function($firstArticle, $secondArticle) { //sorting method of all articles
|
||||||
|
$testA = $firstArticle->getArticleDate();
|
||||||
|
$testB = $secondArticle->getArticleDate();
|
||||||
|
if ($testA == $testB) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return $testA > $testB ? -1 : 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
return $tab;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
3
articles/article.txt
Normal file
3
articles/article.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Titre
|
||||||
|
Date
|
||||||
|
Desc
|
18
index.php
18
index.php
@ -1,17 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
include './Article.php';
|
include './RSSArticle.php';
|
||||||
|
include './RSSArticleManager.php';
|
||||||
|
|
||||||
$url = "http://fetchrss.com/rss/6213baca199e171a5d6eacc26213babd69097e19dd230f73.xml"; /* insérer ici l'adresse du flux RSS de votre choix */
|
$am = new RSSArticleManager();
|
||||||
$rss = simplexml_load_file($url);
|
$tabArticle = $am -> createArticles();
|
||||||
|
$tabArticle = $am -> sortArticles($tabArticle);
|
||||||
$tabArticle = array();
|
|
||||||
foreach ($rss->channel->item as $item){
|
|
||||||
|
|
||||||
$desc = explode("</div>", explode('<div class="content">', $item->description)[1]);
|
|
||||||
|
|
||||||
array_push($tabArticle, new Article($item->title, $desc[0], date_create($item->pubDate), $item->link));
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
@ -27,7 +21,7 @@ foreach ($rss->channel->item as $item){
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
echo sizeof($tabArticle) .' articles<br /><br />';
|
||||||
foreach ($tabArticle as $a) {
|
foreach ($tabArticle as $a) {
|
||||||
echo $a.'<br />';
|
echo $a.'<br />';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user