miraclebg / php-sitemap-generator
Simple PHP sitemap generator.
2.0.0
2020-01-09 11:24 UTC
Requires
- php: ^7.2
- ext-curl: *
- ext-dom: *
- ext-mbstring: *
- ext-simplexml: *
- ext-spl: *
- ext-zlib: *
Requires (Dev)
- php-mock/php-mock-phpunit: ^2.5
- phpunit/phpunit: ^8.5
README
Library for sitemap generation and submission.
Internally uses SplFixedArrays, thus is faster and uses less memory then alternatives.
Features:
- Follows sitemaps.org protocol
- Supports alternative links for multi-language pages (see google docs)
Usage example:
<?php include "src/SitemapGenerator.php"; // Setting the current working directory to be output directory // for generated sitemaps (and, if needed, robots.txt) // The output directory setting is optional and provided for demonstration purpose. // By default output is written to current directory. $outputDir = getcwd(); $generator = new \Icamys\SitemapGenerator\SitemapGenerator('example.com', $outputDir); // will create also compressed (gzipped) sitemap $generator->toggleGZipFileCreation(); // determine how many urls should be put into one file; // this feature is useful in case if you have too large urls // and your sitemap is out of allowed size (50Mb) // according to the standard protocol 50000 is maximum value (see http://www.sitemaps.org/protocol.html) $generator->setMaxURLsPerSitemap(50000); // sitemap file name $generator->setSitemapFileName("sitemap.xml"); // sitemap index file name $generator->setSitemapIndexFileName("sitemap-index.xml"); // alternate languages $alternates = [ ['hreflang' => 'de', 'href' => "http://www.example.com/de"], ['hreflang' => 'fr', 'href' => "http://www.example.com/fr"], ]; // adding url `loc`, `lastmodified`, `changefreq`, `priority`, `alternates` $generator->addURL('http://example.com/url/path/', new DateTime(), 'always', 0.5, $alternates); // generate internally a sitemap $generator->createSitemap(); // write early generated sitemap to file(s) $generator->writeSitemap(); // update robots.txt file in output directory or create a new one $generator->updateRobots(); // submit your sitemaps to Google, Yahoo, Bing and Ask.com $generator->submitSitemap();
Testing
Run tests with command:
$ ./vendor/bin/phpunit
Run code coverage:
$ ./vendor/bin/phpunit --coverage-html ./coverage
Changelog
New in 2.0.0:
- Major code rework
- No more public properties in generator, using only methods
- Removed
addUrls
method in favor ofaddUrl
- Fixed bug with robots.txt update
- Fixed bug in addURL method (empty loc)
- Unit tests added for quality assurance
- Updated limits according to sitemaps spec
- Updated search engines urls
- Added change frequency validation