in-square/pimcore-sitemap-bundle
Composer 安装命令:
composer require in-square/pimcore-sitemap-bundle
包简介
Static XML sitemap generator for Pimcore (Documents + DataObjects).
README 文档
README
Static XML sitemap generator for Pimcore (Documents + DataObjects) with multi-site and multi-locale support.
Requirements
- PHP 8.1+
- Pimcore 11 / Symfony 6.4
- Symfony Messenger (for queue processing)
- Elements Process Manager (commands integrate with Process Manager)
Installation
composer require in-square/pimcore-sitemap-bundle
Enable the bundle in config/bundles.php:
return [ InSquare\PimcoreSitemapBundle\InSquarePimcoreSitemapBundle::class => ['all' => true], ];
Configuration
Create config/packages/in_square_pimcore_sitemap.yaml:
in_square_pimcore_sitemap: sites: - id: 0 host: 'example.com' languages: ['pl'] objects: - 'Pimcore\Model\DataObject\Post' - 'Pimcore\Model\DataObject\PostCategory' - id: 1 host: 'example.org' languages: ['pl', 'en'] objects: - 'Pimcore\Model\DataObject\Product' object_generators: post: 'App\\Sitemap\\PostGenerator' postCategory: 'App\\Sitemap\\PostCategoryGenerator' product: 'App\\Sitemap\\ProductGenerator' output: dir: '%kernel.project_dir%/public/sitemap' max_urls_per_file: 50000
Notes:
sites[*].objectsdefines DataObject classes to collect for each site.object_generatorskeys must matchObjectGeneratorInterface::getId(); keys are used in sitemap filenames.
Commands
bin/console insquare:sitemap:install– createsitemap_itemtable.bin/console insquare:sitemap:collect– dispatch sitemap messages to Messenger.bin/console insquare:sitemap:dump– generate XML files from database.bin/console insquare:sitemap:delete– delete XML files and truncate the table.
Add routing for Messenger in config/packages/framework.yaml:
framework: messenger: routing: 'InSquare\PimcoreSitemapBundle\Message\SitemapItemCreateMessage': async
Run Messenger worker for the queue:
bin/console messenger:consume async
Controller
The bundle exposes /sitemap.xml. The controller selects the correct site and serves the
pre-generated file from public/sitemap/sitemap.{siteId}.xml.
Object generators
Implement InSquare\PimcoreSitemapBundle\Generator\ObjectGeneratorInterface in your app:
<?php declare(strict_types=1); namespace App\Sitemap; use InSquare\PimcoreSitemapBundle\Generator\ObjectGeneratorInterface; use InSquare\PimcoreSitemapBundle\Generator\SitemapItemData; use Pimcore\Model\DataObject\Post; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; final class PostGenerator implements ObjectGeneratorInterface { public function getId(): string { return 'post'; } public function getObjectClass(): string { return Post::class; } public function buildItem(object $object, int $siteId, string $locale): ?SitemapItemData { if (!$object instanceof Post) { return null; } if (!$object->isPublished()) { return null; } $linkGenerator = $object->getClass()?->getLinkGenerator(); if ($linkGenerator === null) { return null; } $url = $linkGenerator->generate($object, [ 'locale' => $locale, 'siteId' => $siteId, 'referenceType' => UrlGeneratorInterface::ABSOLUTE_URL, ]); $lastmod = (new \DateTimeImmutable())->setTimestamp($object->getModificationDate()); return new SitemapItemData( $object->getId(), $object::class, $url, $lastmod ); } }
The generator returns a SitemapItemData DTO used to persist rows in sitemap_item.
in-square/pimcore-sitemap-bundle 适用场景与选型建议
in-square/pimcore-sitemap-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 12 月 29 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Sitemap」 「pimcore」 「pimcore-plugin」 「pimcore-bundle」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 in-square/pimcore-sitemap-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 in-square/pimcore-sitemap-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 in-square/pimcore-sitemap-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Pimcore 5.x Website Indexer (powered by Zend Search Lucene)
Symfony sitemap generator
PHP Simple Sitemap Generator
Integration module allows to integrate Pimcore platform with Magento 2
Scheduled Export lets you run ordinary grid exports in background.
With this Bundle you can automatically translate your content via DeepL Interface.
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 24
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2025-12-29