涡轮-克劳泽伯格/斯普赖克-网站地图

斯普赖克商店的网站地图模块

0.1.0 2023-10-19 08:01 UTC

This package is auto-updated.

Last update: 2024-09-23 11:04:15 UTC


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