A tool to generate XML sitemaps
Generating a urlset sitemap
$urlSet = new Thepixeldeveloper\Sitemap\Urlset();
$url = (new Thepixeldeveloper\Sitemap\Url($loc))
->setLastMod($lastMod)
->setChangeFreq($changeFreq)
->setPriority($priority);
$urlSet->addUrl($url);
Generating a sitemapindex sitemap
$sitemapIndex = new Thepixeldeveloper\Sitemap\SitemapIndex();
$url = (new Thepixeldeveloper\Sitemap\Sitemap($loc))
->setLastMod($lastMod);
$sitemapIndex->addSitemap($url);
Then pass either SitemapIndex or Urlset to Output
to generate output
echo (new Thepixeldeveloper\Sitemap\Output())->getOutput($sitemapIndex);
You can add more specific information to a URL entry, ie video / image information
Image
$subelement = new Thepixeldeveloper\Sitemap\Subelements\Image('https://s3.amazonaws.com/path/to/image');
Video
$subelement = new Thepixeldeveloper\Sitemap\Subelements\Video('thumbnail', 'title', 'description');
Mobile
$subelement = new Thepixeldeveloper\Sitemap\Subelements\Mobile();
Link
$subelement = new Thepixeldeveloper\Sitemap\Subelements\Link('de', 'http://www.example.com/schweiz-deutsch/');
News
$subelement = (new Thepixeldeveloper\Sitemap\Subelements\News())
->setPublicationDate(new \DateTime())
->setPublicationLanguage('en')
->setPublicationName('Site Name')
->setTitle('Some title');
Then you need to add the subelement to the URL
$url = new Thepixeldeveloper\Sitemap\Url('http://www.example.com/1')
$url->addSubelement($subelement);
and rendering is described above.
Indenting output
Output is indented by default, can be turned off as follows
echo (new Thepixeldeveloper\Sitemap\Output())
->setIndented(false)
->getOutput($urlSet);
Configuration
Name | Default | Values |
---|---|---|
setIndented | true | boolean |
setIndentString | 4 spaces | string |
Why should I use this over cartographer?
- This library has less complexity. All it's going to do is build an object graph and spit it out as XML
- Has support for a growing list of sub elements ie: mobile and images
- No dependencies. A library outputting XML doesn't need to rely on Flysystem