Simple sitemap generator with robust and performance implementation.
- Generates a standardized site map in XML format,
- Allows custom implementation of UrlLoader and specification of custom link sources,
- The generated map is automatically cached and updated without the need to use cron.
It's best to use Composer for installation, and you can also find the package on Packagist and GitHub.
To install, simply use the command:
$ composer require baraja-core/sitemap
You can use the package manually by creating an instance of the internal classes, or register a DIC extension to link the services directly to the Nette Framework.
The package automatically generates a site map as a sitemap.xml
file with the following structure:
<urlset xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>
https://... // Here will be the whole absolute path
</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
URLs are retrieved from the abstract SitemapUrlLoader
service, which can be overloaded and otherwise implemented. UrlLoader returns the entity field SitemapItems[]
with the getUrls()
method.
It adds its own presenter to the administration, which shows the current form and structure of the file.
Composer:
$ composer require baraja-core/sitemap
The routing rule and services are registered automatically.
After installation, you must define an UrlLoader in the package, which gets a list of all available URLs and passes it on for rendering. You can use another existing library as the UrlLoader.
The package does not include the default implementation of UrlLoader, and each project must implement it itself.
The class must contain a public getUrls()
method that returns an array of SitemapItem[]
instances.
The package does not create any physical sitemap file, because it runs a PHP script with each request. In order not to always have to perform complex mapping, the package itself will use a cache with a default validity of 5 minutes.
The cache length setting can be affected by the neon
configuration file:
sitemap:
cacheExpirationTime: '20 minutes'
baraja-core/sitemap
is licensed under the MIT license. See the LICENSE file for more details.