php - 如何在 Symfony 4 控制台命令中获取应用程序根路径

标签 php symfony console symfony4

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

这个$this->getContainer()->get('kernel')->getRootDir() - 不工作。
这个$this->get('kernel')->getRootDir(); - 不工作。
这个$this->get('parameter_bag')->get('kernel.project_dir'); - 不工作。

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

最佳答案

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

src/命令

class YourCommand extends Command
{
    private $path; 

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

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

配置/服务.yaml
services:
    # ...

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

关于php - 如何在 Symfony 4 控制台命令中获取应用程序根路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53497815/

相关文章:

php - Symfony2 Doctrine 元数据缓存与 Redis 问题

Java最简单的按键监听器

javascript - node.js 在控制台显示 "undefined"

php - 查看与您的 MariaDB 服务器版本对应的手册,了解在 '"Array"SQL 附近使用的正确语法

PHP 注册表单不工作

php - 使用 Php exec() 执行 bash 脚本时,为什么 Php 会等待被拒绝的后台作业完成?

php - 使用 assetic 提供相关图像

php - 拆分一个Symfony 2项目?

javascript - Chrome 控制台处理 jQuery $(this) 错误?

php - 如何连接两个表并获得正确的记录