如何在Symfony 4 Console命令中获取应用程序根路径

时间:2018-11-27 10:40:23

标签: php symfony console symfony4

我有一个简单的 Symfony 4 控制台应用程序。 在execute()方法中,我需要打印应用程序的根路径。

$this->getContainer()->get('kernel')->getRootDir()-不起作用。
$this->get('kernel')->getRootDir();-不起作用。
$this->get('parameter_bag')->get('kernel.project_dir');-不起作用。

如何获取应用程序的根路径?

1 个答案:

答案 0 :(得分:3)

我建议不要将容器注入命令,而是在服务定义中显式传递参数

src / Command

class YourCommand extends Command
{
    private $path; 

    public function __construct(string $path) 
    {
         $this->path = $path;
    }

    public function (InputInterface $input, OutputInterface $output)
    {
       echo $this->path;
    }
}

config / services.yaml

services:
    # ...

    App\Command\YourCommand:
        arguments:
            $path: '%kernel.project_dir%'