PHPackages                             alantmiller/php-sitemap-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. alantmiller/php-sitemap-generator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

alantmiller/php-sitemap-generator
=================================

Alan's PHP sitemap generator

00PHP

Since Sep 11Pushed 2y ago1 watchersCompare

[ Source](https://github.com/alantmiller/php-sitemap-generator)[ Packagist](https://packagist.org/packages/alantmiller/php-sitemap-generator)[ RSS](/packages/alantmiller-php-sitemap-generator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

php-sitemap-generator
=====================

[](#php-sitemap-generator)

A completely new version of my old XML Stemap Generator application

```
// autoload.php

require 'vendor/autoload.php';

use alantmiller\PhpSitemapGenerator\Sitemap;
use alantmiller\PhpSitemapGenerator\Entry;
use alantmiller\PhpSitemapGenerator\Generator;
use alantmiller\PhpSitemapGenerator\Config;

// Create and populate config
$config = new Config();

// Domain regex allows alphanumeric, dashes, dot
$domainRegex = '/^[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/';
$domain = 'www.example.com';

if (preg_match($domainRegex, $domain)) {
  // Valid domain, use it
  $config->setDomain($domain);
} else {
  // Invalid domain, throw error
  throw new Exception('Invalid domain format');
}

$config->setFilename('sitemap.xml');

// Sitemap
$sitemap = new Sitemap($config);

// Add entry with video
$video = [
  'thumbnail' => '/images/video1_thumbnail.jpg',
  'title' => 'Awesome Video'
];

$entry = new Entry('/video1', 0.9);
$entry->setVideos([$video]);
$sitemap->addEntry($entry);

// Add entry with images
$images = [
  [
     'loc' => '/images/image1.jpg',
     'title' => 'Image 1'
  ],
  [
     'loc' => '/images/image2.jpg',
     'title' => 'Image 2'
  ]
];

$entry = new Entry('/page1', 0.8);
$entry->setImages($images);
$sitemap->addEntry($entry);

$dateTime = new DateTime(); // current date

// Create random dates
for($i = 1; $i < 8; $i++) {

  $dateTime = new DateTime("+$i days");
  $page = "/page$i";
  $priority = mt_rand(10, 20) / 10;

  $sitemap->addEntry($page, $priority, 'monthly', $dateTime);
}

// Generate
$generator = new Generator($config);
$sitemap = $generator->toString();

// Output sitemap
echo $sitemap;
```

###  Health Score

12

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity20

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/33bb91fa9cd7fc5ad125978ea7caaad9ce5c3b62d394909361b53d602667144f?d=identicon)[alantmiller](/maintainers/alantmiller)

---

Top Contributors

[![alantmiller](https://avatars.githubusercontent.com/u/183872?v=4)](https://github.com/alantmiller "alantmiller (71 commits)")

### Embed Badge

![Health badge](/badges/alantmiller-php-sitemap-generator/health.svg)

```
[![Health](https://phpackages.com/badges/alantmiller-php-sitemap-generator/health.svg)](https://phpackages.com/packages/alantmiller-php-sitemap-generator)
```

###  Alternatives

[symfony/polyfill-uuid

Symfony polyfill for uuid functions

688335.4M63](/packages/symfony-polyfill-uuid)[spatie/error-solutions

This is my package error-solutions

6853.2M11](/packages/spatie-error-solutions)[phpflo/phpflo

Flow-based programming for PHP

2173.3k4](/packages/phpflo-phpflo)[eftec/autoloadone

AutoloadOne is a program that generates an autoload class for PHP.

403.4k](/packages/eftec-autoloadone)[ys-tools/default-theme-configuration-bundle

OroCommerce Default Theme Configuration Bundle

124.2k](/packages/ys-tools-default-theme-configuration-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
