From 043b5814d628e9414ab7c29d7ca40de6f1a7e00c Mon Sep 17 00:00:00 2001 From: Nicolas Brousse Date: Mon, 21 Jul 2014 14:54:32 +0200 Subject: [PATCH 1/6] SitemapEntry.php optimization * Change private properties to protected * Add checks for setPriority and setChangeFreq * Add constants for ChangeFreq * return $this in setters --- src/Sitemap/Sitemap/SitemapEntry.php | 48 ++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/src/Sitemap/Sitemap/SitemapEntry.php b/src/Sitemap/Sitemap/SitemapEntry.php index 07e0287..0454f0a 100644 --- a/src/Sitemap/Sitemap/SitemapEntry.php +++ b/src/Sitemap/Sitemap/SitemapEntry.php @@ -6,17 +6,31 @@ class SitemapEntry { - private $location; + const CHANGEFREQ_ALWAYS = 'always'; + const CHANGEFREQ_HOURLY = 'hourly'; + const CHANGEFREQ_DAILY = 'daily'; + const CHANGEFREQ_WEEKLY = 'weekly'; + const CHANGEFREQ_MONTHLY = 'monthly'; + const CHANGEFREQ_YEARLY = 'yearly'; + const CHANGEFREQ_NEVER = 'never'; - private $lastMod; + protected $location; - private $priority; + protected $lastMod; - private $changeFreq; + protected $priority; + + protected $changeFreq; public function setLastMod($lastMod) { + if ($lastMode instanceof \DateTime) { + $lastMod = $lastMod->format('U'); + } + $this->lastMod = $lastMod; + + return $this; } public function getLastMod() @@ -27,6 +41,8 @@ public function getLastMod() public function setLocation($location) { $this->location = $location; + + return $this; } public function getLocation() @@ -36,7 +52,19 @@ public function getLocation() public function setChangeFreq($changeFreq) { - $this->changeFreq = $changeFreq; + if (in_array($changeFreq, array( + self::CHANGEFREQ_ALWAYS, + self::CHANGEFREQ_HOURLY, + self::CHANGEFREQ_DAILY, + self::CHANGEFREQ_WEEKLY, + self::CHANGEFREQ_MONTHLY, + self::CHANGEFREQ_YEARLY, + self::CHANGEFREQ_NEVER, + )) { + $this->changeFreq = $changeFreq; + } + + return $this; } public function getChangeFreq() @@ -46,11 +74,19 @@ public function getChangeFreq() public function setPriority($priority) { + $priority = round((float) $priority, 1); + + if ($priority < 0 || $priority > 1) { + $priority = 0.5; + } + $this->priority = $priority; + + return $this; } public function getPriority() { return $this->priority; } -} \ No newline at end of file +} From 55f9ece07c68d9431a49b8b607010ab0c7a66c85 Mon Sep 17 00:00:00 2001 From: Nicolas Brousse Date: Mon, 21 Jul 2014 15:05:22 +0200 Subject: [PATCH 2/6] Debug --- src/Sitemap/Sitemap/SitemapEntry.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sitemap/Sitemap/SitemapEntry.php b/src/Sitemap/Sitemap/SitemapEntry.php index 0454f0a..460b1f8 100644 --- a/src/Sitemap/Sitemap/SitemapEntry.php +++ b/src/Sitemap/Sitemap/SitemapEntry.php @@ -60,7 +60,7 @@ public function setChangeFreq($changeFreq) self::CHANGEFREQ_MONTHLY, self::CHANGEFREQ_YEARLY, self::CHANGEFREQ_NEVER, - )) { + ))) { $this->changeFreq = $changeFreq; } From bf5865d328489277cd4e68af7878fadbf261c5c4 Mon Sep 17 00:00:00 2001 From: Nicolas Brousse Date: Mon, 21 Jul 2014 15:10:19 +0200 Subject: [PATCH 3/6] Cleanup * Remove useless `use XMLWriter` * Debug var name line 25 * Optimize setProperty method --- src/Sitemap/Sitemap/SitemapEntry.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Sitemap/Sitemap/SitemapEntry.php b/src/Sitemap/Sitemap/SitemapEntry.php index 460b1f8..bfc4ddb 100644 --- a/src/Sitemap/Sitemap/SitemapEntry.php +++ b/src/Sitemap/Sitemap/SitemapEntry.php @@ -2,8 +2,6 @@ namespace Sitemap\Sitemap; -use XMLWriter; - class SitemapEntry { const CHANGEFREQ_ALWAYS = 'always'; @@ -24,7 +22,7 @@ class SitemapEntry public function setLastMod($lastMod) { - if ($lastMode instanceof \DateTime) { + if ($lastMod instanceof \DateTime) { $lastMod = $lastMod->format('U'); } @@ -74,10 +72,13 @@ public function getChangeFreq() public function setPriority($priority) { - $priority = round((float) $priority, 1); + if ($priority !== null) + { + $priority = round((float) $priority, 1); - if ($priority < 0 || $priority > 1) { - $priority = 0.5; + if ($priority < 0 || $priority > 1) { + $priority = 0.5; + } } $this->priority = $priority; From 0def418a2c8b3ae310ae2f2acb2fa3a652f70a82 Mon Sep 17 00:00:00 2001 From: Nicolas Brousse Date: Mon, 21 Jul 2014 15:24:40 +0200 Subject: [PATCH 4/6] Create SitemapEntry.php constructor Create a constructor for quick ans simple sitemap entries --- src/Sitemap/Sitemap/SitemapEntry.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Sitemap/Sitemap/SitemapEntry.php b/src/Sitemap/Sitemap/SitemapEntry.php index bfc4ddb..17f50d5 100644 --- a/src/Sitemap/Sitemap/SitemapEntry.php +++ b/src/Sitemap/Sitemap/SitemapEntry.php @@ -20,6 +20,14 @@ class SitemapEntry protected $changeFreq; + public function __construct($loc = null, $lastMod = null, $changeFreq = null, $priority = null) + { + $this->setLocation($loc); + $this->setLastMod($lastMod); + $this->setChangeFreq($changeFreq); + $this->setPriority($priority); + } + public function setLastMod($lastMod) { if ($lastMod instanceof \DateTime) { From 3832dc59492663258a17caa4ae9223385b4c94b6 Mon Sep 17 00:00:00 2001 From: Nicolas Brousse Date: Mon, 21 Jul 2014 18:45:46 +0200 Subject: [PATCH 5/6] Change lastMod date format in SitemapEntry Use W3C date format (http://www.w3.org/TR/NOTE-datetime) as it write in http://www.sitemaps.org/protocol.html#xmlTagDefinitions. --- src/Sitemap/Sitemap/SitemapEntry.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sitemap/Sitemap/SitemapEntry.php b/src/Sitemap/Sitemap/SitemapEntry.php index 17f50d5..85b3f77 100644 --- a/src/Sitemap/Sitemap/SitemapEntry.php +++ b/src/Sitemap/Sitemap/SitemapEntry.php @@ -31,7 +31,7 @@ public function __construct($loc = null, $lastMod = null, $changeFreq = null, $p public function setLastMod($lastMod) { if ($lastMod instanceof \DateTime) { - $lastMod = $lastMod->format('U'); + $lastMod = $lastMod->format(\DateTime::DATE_W3C); } $this->lastMod = $lastMod; From 93f2f2a40c6c2322a4ca5210acc4c7186aad6380 Mon Sep 17 00:00:00 2001 From: Nicolas Brousse Date: Mon, 25 Aug 2014 14:14:31 +0200 Subject: [PATCH 6/6] Update SitemapEntry constructor --- src/Sitemap/Sitemap/SitemapEntry.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sitemap/Sitemap/SitemapEntry.php b/src/Sitemap/Sitemap/SitemapEntry.php index 85b3f77..4a7f7a9 100644 --- a/src/Sitemap/Sitemap/SitemapEntry.php +++ b/src/Sitemap/Sitemap/SitemapEntry.php @@ -20,7 +20,7 @@ class SitemapEntry protected $changeFreq; - public function __construct($loc = null, $lastMod = null, $changeFreq = null, $priority = null) + public function __construct($loc, $lastMod = null, $changeFreq = null, $priority = null) { $this->setLocation($loc); $this->setLastMod($lastMod);