首页 > 解决方案 > Symfony 4 错误:服务中未使用的绑定“$projectDir”

问题描述

从 Symfony 3.4 更新到 4.1 时,当我 php bin/console 时,出现以下错误。
我想以 url 引用方式获取参数。
原因是什么?
https://symfony.com/blog/new-in-symfony-4-1-getting-container-parameters-as-a-service

错误代码

Unused binding "$projectDir" in service "common.parameterService". 

配置/服务.yaml

parameters:
    parameter_name: XXX

services:
    _defaults:
        autowire: false
        autoconfigure: false
        public: false
        bind:
            $projectDir: '%kernel.project_dir%'

    common.parameterService:
        class:  AppBundle\Model\Service\ParameterService
        arguments:  [ "@service_container" ]

AppBundle/Model/Service/ParameterService.php

use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use AppBundle\Model\Service\BaseService;

/**
 * 
 */
class ParameterService extends BaseService
{
    private $params;

    public function __construct(ParameterBagInterface $params)
    {
        $this->params = $params;
    }
    /**
     *
     * @param string 
     * @return mixed
     */
    public function getParameter()
    {
        return $this->params->get('parameter_name');
    }

标签: phpsymfony

解决方案


这意味着您已经声明了这一点:

    bind:
        $projectDir: '%kernel.project_dir%'

$projectDir但没有在ParameterService该文件的任何其他服务中注入。

您可以删除这两行:

    bind:
        $projectDir: '%kernel.project_dir%'

推荐阅读