dev-master
9999999-dev http://github.com/mapshub/sitemapsLibrary that provides generating of sitemap files used by yandex, google etc
MIT
The Requires
- php >=5.3.0
by Gertsiy Dmitriy
google sitemap yandex site map
Library that provides generating of sitemap files used by yandex, google etc
Генеатор файлов sitemap, (*1)
Для правильной генерации файлов sitemap, как этого требует яндекс: - с разбивкой на файлы размером не более 10Mb - количеством url в каждом файле не более 50000, (*2)
Установка, (*3)
Для установки добавьте sitemaps/sitemap в файл composer.json в вашем проекте., (*4)
Например:, (*5)
{ "require": { "sitemaps/sitemap": "dev-master" } }
Принцип работы, (*6)
URL-ы нужно добавлять во временное хранилище до создания полного списка, а потом запустить генератор файлов. Генератор создаст файл типа "sitemapindex" и столько файлов типа "urlset" сколько потребуется, в соответствии с указанными выше требованиями. Генератору для работы требуется указать путь к папке, в которую сохранять сгенерированные файлы, и URL этой папки чтобы формировать url-ы для скачивания файлов sitemap по http., (*7)
outputDir - папка для хранения, (*8)
baseUrl - базовый url для скачивания, (*9)
Примеры, (*10)
Пример с хранением временных данных в массиве PHP, (*11)
public function testBuilderWithArrayStorage() { //для каждoго сайта свой Id $site_id = "com_example_array_storage"; $sm = new \Sitemaps\Sitemap($site_id); $arrayStorage = new \Sitemaps\Storage\ArrayStorage\Storage(); $sm->setStorage($arrayStorage); $builder = new \Sitemaps\Builder\XMLWriter\Builder(); $builder->setOutputDir(__DIR__ . "/" . self::test_output_dir); $builder->setBaseUrl("http://example.com/sitemap/"); $sm->setBuilder($builder); $total = 2000; for ($i = 0; $i < $total; $i++) { $sm->addLocation("http://example.com/catalog/pages/{$i}/", new \DateTime("now")); } $sm->getBuilder()->build(); }
Данный тип используется по-умолчанию, поэтому можно явно setStorage не делать., (*12)
public function testBuilderWithArrayStorage() { //для каждoго сайта свой Id $site_id = "com_example_array_storage"; $sm = new \Sitemaps\Sitemap($site_id); $builder = new \Sitemaps\Builder\XMLWriter\Builder(); $builder->setOutputDir(__DIR__ . "/" . self::test_output_dir); $builder->setBaseUrl("http://example.com/sitemap/"); $sm->setBuilder($builder); $total = 2000; for ($i = 0; $i < $total; $i++) { $sm->addLocation("http://example.com/catalog/pages/{$i}/", new \DateTime("now")); } $sm->getBuilder()->build(); }
Пример с хранением временных данных в MongoDB, (*13)
public function testBuilderWithMongoDBStorage() { //для каждoго сайта свой Id $site_id = "example_mongo_storage"; $sm = new \Sitemaps\Sitemap($site_id); $mongoStorage = new \Sitemaps\Storage\Mongo\Storage(); $sm->setStorage($mongoStorage); $builder = new \Sitemaps\Builder\XMLWriter\Builder(); $builder->setOutputDir(__DIR__ . "/" . self::test_output_dir); $builder->setBaseUrl("http://example.com/sitemap/"); $sm->setBuilder($builder); $sm->clear(); $total = 2000; for ($i = 0; $i < $total; $i++) { $sm->addLocation("http://example.com/catalog/pages/{$i}/", new \DateTime("now")); } $sm->getBuilder()->build(); $sm->clear(); }
Library that provides generating of sitemap files used by yandex, google etc
MIT
google sitemap yandex site map