如何优先路由

How to prority route

我已经通过重写路由重写了应用程序中的控制器并且它有效, 但还安装了另一个插件,它覆盖了与我覆盖相同的路由(这个插件不能更改),现在这个路由被 shopware 支持,而不是我的。

这是我要显示的控制器

namespace MyPlugin\Core\Checkout\Customer\SalesChannel;

...
class ChangeCustomerProfileRoute extends AbstractChangeCustomerProfileRoute
{
     * @Route(path="/store-api/account/change-profile", name="store-api.account.change-profile", methods={"POST"})
     */
    public function change(RequestDataBag $data, SalesChannelContext $context, CustomerEntity $customer): SuccessResponse

...

这是另一个插件中的控制器 - 我不想显示它 (我需要这个插件,因为我需要功能,但我不需要这个路由)

namespace StorePlugin\Core\Checkout\Customer\SalesChannel;

...
class ChangeCustomerProfileRoute extends AbstractChangeCustomerProfileRoute
{
     * @Route(path="/store-api/account/change-profile", name="store-api.account.change-profile", methods={"POST"})
     */
    public function change(RequestDataBag $data, SalesChannelContext $context, CustomerEntity $customer): SuccessResponse

...

我读过这篇文章 https://symfony.com/blog/new-in-symfony-5-1-route-annotations-priority 但它不起作用,因为它没有优先考虑名称,只有 url。

我如何确定我的路由名称优先被 shopware 支持?

作为 hack,我会尝试使用 Listen 并忽略来自 Shopware 的路由。

优先级应该取决于插件加载顺序,由决定。

尝试以不同的顺序安装插件。您也可以手动更改数据库中 plugin table 中的安装日期。