Skip to content

Simple sitemap generator with robust and performance implementation.

License

Notifications You must be signed in to change notification settings

baraja-core/sitemap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sitemap generator

Integrity check

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.

📦 Installation

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.

Basic description

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.

Installation

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.

Getting a list of URLs

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.

Getting sitemap + cache

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'

📄 License

baraja-core/sitemap is licensed under the MIT license. See the LICENSE file for more details.