/Sitemap

PHP XML sitemap generation for PHP ^5.6 forked from https://github.com/ThePixelDeveloper/Sitemap

Primary LanguagePHPMIT LicenseMIT

Aterbonus\Sitemap

WARNING: This is a quick repo from thepixeldeveloper/sitemap to make it work on PHP ^5.6. You should use the original repo if you have access to PHP 7. Don't expect updates.

Installation

composer require "Aterbonus/sitemap"

Basic Usage

Generating a typical (<urlset>) sitemap.

<?php

use Aterbonus\Sitemap\Urlset;
use Aterbonus\Sitemap\Url;
use Aterbonus\Sitemap\Drivers\XmlWriterDriver;

$url = new Url($loc);
$url->setLastMod($lastMod);
$url->setChangeFreq($changeFreq);
$url->setPriority($priority);

$urlset = new Urlset();
$urlSet->add($url);

$driver = new XmlWriterDriver();
$urlset->accept($driver);

echo $driver->getOutput();

Generating a parent (<sitemapindex>) sitemap.

<?php

use Aterbonus\Sitemap\SitemapIndex;
use Aterbonus\Sitemap\Sitemap;
use Aterbonus\Sitemap\Drivers\XmlWriterDriver;

// Sitemap entry.
$url = new Sitemap($loc);
$url->setLastMod($lastMod);

// Add it to a collection.
$urlset = new SitemapIndex();
$urlSet->add($url);

$driver = new XmlWriterDriver();
$urlset->accept($driver);

echo $driver->output();

Extensions

The following extensions are supported: Image, Link, Mobile, News and Video. They work in the following way (taking image as an example):

<?php

use Aterbonus\Sitemap\Urlset;
use Aterbonus\Sitemap\Url;
use Aterbonus\Sitemap\Extensions\Image;

$url = new Url($loc);
$url->setLastMod($lastMod);
$url->setChangeFreq($changeFreq);
$url->setPriority($priority);

$image = new Image('https://image-location.com');

$url->addExtension($image);

...

Advanced Usage

Processing Instructions

You can add processing instructions on the output as such.

<?php

use Aterbonus\Sitemap\Drivers\XmlWriterDriver;

$driver = new XmlWriterDriver();
$driver->addProcessingInstructions('xml-stylesheet', 'type="text/xsl" href="/path/to/xslt/main-sitemap.xsl"');

Which will add before the document starts.

<?xml-stylesheet type="text/xsl" href="/path/to/xslt/main-sitemap.xsl"?>

Comments

Comments are useful for information such as when the file was created.

<?php

use Aterbonus\Sitemap\Drivers\XmlWriterDriver;

$date = date('Y-m-d H:i:s');

$driver = new XmlWriterDriver();
$driver->addComment('This XML file was written on ' . $date . '. Bye!');

Which will render out.

<?xml version="1.0" encoding="UTF-8"?>
<!--This XML file was written on 2018-06-24 15:57:23. Bye!-->