After writing two sitemap generators for two different old sites, I whipped this together – a sitemap generator that mashes together a bunch of sitemap generators.
sitemap-generator-php lets you jam together a lot of URLs from different data tables into one, multi-sitemap, sitemap.
To use it, you extend the AbstractDatabaseSitemapBuilder class. That abstract class contains the code to generate the pages, cache them, and respond to requests.
You extend it with methods to interact with your CMS, talk to the database, read directories, or whatever. You put all this into your class, and then make an array with callbacks to all these methods. That array is used to build the lists of URLs that get written to the sitemap.