涡轮-克劳泽伯格 / 斯普赖克-网站地图
斯普赖克商店的网站地图模块
Requires
- php: >=8.0
- ext-simplexml: *
- ext-zlib: *
Requires (Dev)
- ext-dom: *
- codeception/codeception: 5.0.x-dev
- codeception/module-asserts: *
- codeception/module-phpbrowser: *
- spryker-sdk/phpstan-spryker: ^1.0@dev
- spryker/application: ^3.33
- spryker/code-sniffer: dev-master
- spryker/console: ^4.12
- spryker/testify: ^3.50
README
模块根据网站地图协议生成网站地图。
安装
composer require turbine-kreuzberg/spryker-sitemap
设置
要使用提供的控制台命令,您需要在您的 config_default.php
中注册 TurbineKreuzberg 命名空间。
$config[KernelConstants::CORE_NAMESPACES] = [ // add TurbineKreuzberg as a core namespace 'TurbineKreuzberg', ];
在 ConsoleDependencyProvider
中,您需要添加您想要使用的网站地图控制台。
use Shared\Zed\Sitemap\Communication\Console\SitemapConsole;use Shared\Zed\Sitemap\Communication\Console\SitemapIndexConsole; protected function getConsoleCommands(Container $container): array { $commands = [ // ... new SitemapIndexConsole(), new SitemapConsole(), ];
如果一切正常,您应该会在您的
sitemap
sitemap:generate Generate sitemap(s).
sitemap:index:generate Generate sitemap index (do not forget to generate sitemaps first).
如果只有一个插件并且您正在生成单个网站地图,则无需注册索引控制台。
用法
要为您注册的所有插件生成网站地图,请运行
vendor/bin/console sitemap:generate
如果您只想为单个网站地图插件生成网站地图,而不是所有插件,您可以使用带插件名称的 sitemap:generate
。典型用例是您有不同更新频率的不同网站地图。
vendor/bin/console sitemap:generate name-of-your-plugin
要生成网站地图索引,请运行
vendor/bin/console sitemap:index:generate
索引生成将假定已为注册插件生成了所有网站地图。目前没有验证。
网站地图插件
为了使控制台命令能够执行任何操作,您需要在 SitemapDependencyProvider
中至少注册一个网站地图插件。插件需要实现 \TurbineKreuzberg\Zed\Sitemap\Dependency\Plugin\SitemapPluginInterface
技术考虑
网站地图生成可能会占用大量资源,这就是为什么我们可以使用 生成器 来减少内存使用。应该避免在批量操作中使用 ORM,Propel 提供了对底层 PDO 的访问,我们可以利用 PDOStatement::fetch 来遍历数据库记录以节省内存。
示例插件
在文档文件夹中,您可以找到一个完全实现的 CategorySitemapPlugin,该插件将调用 URL 模块以检索所有类别的 URL。您可以在项目的对应文件夹中找到所有必要的更改。
配置
网站地图模块附带了一些您需要了解的配置。
关于网站地图的一些话
网站地图标准附带了一些我们需要考虑的 限制。可能最重要的是,您可以在一个网站地图中拥有 50k 个链接。如果您有更多,您需要创建网站地图索引和多个网站地图。在创建您的插件时,需要考虑这一点。
网站地图索引示例
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>https://www.example.com/sitemap1.xml.gz</loc> </sitemap> <sitemap> <loc>https://www.example.com/sitemap2.xml.gz</loc> </sitemap> </sitemapindex>
测试
检查代码风格违规
嗅探
vendor/bin/phpcs --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml ./src
修复可自动修复的错误
vendor/bin/phpcbf --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml ./src
PHPStan
vendor/bin/phpstan
运行测试
vendor/bin/codecept build
vendor/bin/codecept run