setono / sylius-redirect-plugin
Sylius 插件,用于管理重定向
v2.4.3
2024-09-04 11:27 UTC
Requires
- php: >=7.4
- doctrine/collections: ^1.6
- doctrine/orm: ^2.7
- doctrine/persistence: ^1.3 || ^2.1 || ^3.0
- league/uri: ^6.0
- league/uri-components: ^2.3
- sylius/channel: ^1.0
- sylius/channel-bundle: ^1.0
- sylius/core-bundle: ^1.0
- sylius/product-bundle: ^1.0
- sylius/resource-bundle: ^1.6
- sylius/taxonomy-bundle: ^1.0
- sylius/ui-bundle: ^1.0
- symfony/config: ^5.4 || ^6.0
- symfony/console: ^5.4 || ^6.0
- symfony/dependency-injection: ^5.4 || ^6.0
- symfony/event-dispatcher: ^5.4 || ^6.0
- symfony/form: ^5.4 || ^6.0
- symfony/http-foundation: ^5.4 || ^6.0
- symfony/http-kernel: ^5.4 || ^6.0
- symfony/routing: ^5.4 || ^6.0
- symfony/validator: ^5.4 || ^6.0
- webmozart/assert: ^1.11
Requires (Dev)
- api-platform/core: ^2.7
- lexik/jwt-authentication-bundle: ^2.16
- php-http/message-factory: ^1.1
- phpspec/phpspec: ^7.3
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.6
- psalm/plugin-phpunit: ^0.18
- psalm/plugin-symfony: ^5.0
- setono/code-quality-pack: ^2.4
- setono/sylius-behat-pack: ^0.2
- sylius/sylius: ~1.10.14
- symfony/debug-bundle: ^5.4 || ^6.0
- symfony/dotenv: ^5.4 || ^6.0
- symfony/intl: ^5.4 || ^6.0
- symfony/web-profiler-bundle: ^5.4 || ^6.0
- symfony/webpack-encore-bundle: ^1.16
README
赋予您在 Sylius 商店中管理重定向的能力。
安装
步骤 1:下载插件
打开命令行界面,进入您的项目目录,然后执行以下命令以下载此插件的最新稳定版本
$ composer require setono/sylius-redirect-plugin
此命令要求您全局安装了 Composer,如 Composer 文档中的安装章节所述。
步骤 2:启用插件
然后,通过将其添加到项目 config/bundles.php
文件中注册的插件/捆绑包列表中启用插件
<?php return [ // ... // Add before SyliusGridBundle Setono\SyliusRedirectPlugin\SetonoSyliusRedirectPlugin::class => ['all' => true], Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true], // ... ];
非常重要的是在添加网格捆绑包之前添加插件,否则您将收到一个异常,显示 您已请求不存在的参数 "setono_sylius_redirect.model.redirect.class"。
步骤 3:添加配置
# config/routes/setono_sylius_redirect.yaml setono_sylius_redirect_admin: resource: "@SetonoSyliusRedirectPlugin/Resources/config/admin_routing.yaml" prefix: /%sylius_admin.path_name%
# config/packages/setono_sylius_redirect.yaml imports: # ... - { resource: "@SetonoSyliusRedirectPlugin/Resources/config/app/config.yaml" } # ...
步骤 4:更新数据库
使用 Doctrine 迁移创建迁移文件并更新数据库。
$ bin/console doctrine:migrations:diff $ bin/console doctrine:migrations:migrate
步骤 5:复制模板
您可以将 tests/Application/templates/bundles/SyliusAdminBundle
下的模板复制到您的应用程序中,以启用在更新产品时添加自动重定向的功能。
步骤 6:安装资源
$ bin/console assets:install
功能
此插件允许您创建新的重定向。
在 配置
下的新菜单项 重定向
中,您可以管理重定向。
重定向条目
一个条目由以下组成
- 源 URL,相对于您的网站
- 目标 URL,可以是相对的或绝对的,如果您想重定向到另一个网站
- 永久或临时(这将影响重定向的 HTTP 响应代码,301 或 302)
- 启用
- 只有当 404 时才重定向(以管理潜在的死链)
安全
在创建/修改重定向时内置了安全机制,可以防止创建无限循环。这通过无限递归检查来实现。
第二个安全机制是防止相同的源重定向导致不一致的重定向。
自动重定向
有一个内置功能,允许您在更改产品 slug 时自动创建重定向。它还处理可能会创建无限循环的情况,并删除不必要的重定向。
示例:有一个如 /products/a
的 slug,将其重命名为 /products/b
,然后将其重命名为 /products/a
,这将导致从 b
到 a
的重定向,并自动删除从 a
到 b
的重定向。