我有一些应用程序要迁移到Symfony 4.1。启用container.autowiring.strict_mode: true
后,重新保护我们的自定义Router
时出现错误
The service ".service_locator.G69Xsbl.Foo\Bundle\Admin\SiteRoutingBundle\Routing\AdminSiteRouter"
has a dependency on a non-existent service "Symfony\Component\Config\Loader\LoaderInterface".
该类如下所示:
<?php
namespace Foo\Bundle\Admin\SiteRoutingBundle\Routing;
use Symfony\Bundle\FrameworkBundle\Routing\Router;
use Foo\Bundle\Common\CoreBundle\Manager\SiteManagerInterface;
class AdminSiteRouter extends Router
{
const USE_SITE_HOST = true;
const USE_SITE_PARAM = false;
protected $siteManager;
public function setSiteManager(SiteManagerInterface $siteManager)
{
$this->siteManager = $siteManager;
}
public function generate($name, $parameters = [], $referenceType = self::ABSOLUTE_URL)
{
// some code
}
}
无论是在此类中,还是在FrameworkBundle中的扩展类Router
中,都不依赖于LoaderInterface
。
此类的自动安装配置:
Foo\Bundle\Admin\SiteRoutingBundle\Routing\AdminSiteRouter:
arguments:
$resource: '%site_routing_file_path%'
$options: []
calls:
- [setSiteManager, ['@Foo\Bundle\Common\CoreBundle\Manager\SiteManagerInterface']]
2条答案
按热度按时间qni6mghb1#
看起来有两个容器参数导致了这个问题。使用一个全新的4.1.1安装我得到了同样的错误。修复它:
我的管理路由器很简单:
作为参考,框架路由器如下所示:
请注意两个ContainerInterface参数。我认为这是混淆autowire。甚至可能是一个bug。
pdtvr36n2#
我正在使用Drupal 9,我也面临这个问题后,unstall重新安装commerce_shipping模块,请你怎么解决它?
Symfony\组件\依赖注入\异常\未找到服务异常:服务“commerce_currency_resolver_shipping.order_processor”依赖于不存在的服务“commerce_shipping.order_manager”