我已经看到了这个How can i inject dependencies to Symfony Console commands?,但这个答案并没有真正提供足够的信息,并且已在此处进行了解释http://symfony.com/doc/current/cookbook/console/console_command.html
问题是containerAwareCommand无法使用此处的设置http://symfony.com/doc/current/components/console/introduction.html
为了从我能说的内容中使用containerAwareCommand,我需要使用我的应用程序
Symfony\Bundle\FrameworkBundle\Console\Application
而不是
Symfony\Component\Console\Application
但是使用frameworkBundle Application类需要一个KernelInterface实例,并且不允许我将名称和版本传递给我的应用程序。
以下是我对containerAwareCommands不起作用的内容
#!/usr/bin/env php
<?php
require __DIR__.'/../src/vendor/autoload.php';
$app = new Symfony\Component\Console\Application('spud', '0.0.1');
$app->add(new Isimmons\Spudster\Console\Commands\SayHelloCommand);
$app->run();
它自己运行的命令,但在尝试使用getContainer
时出错 Call to undefined method Symfony\Component\Console\Application::getKernel()
在接下来可能会出现的相关主题上,使用app / config / config.php文件显示在容器中注册类的文档。但我没有app目录,因为这不是一个完整的symfony应用程序。除了上面的文件之外的所有应用程序所在的基本目录是src / lib。如果我能弄清楚上面的第一部分,symfony能否在src / lib / config / config.php找到配置文件?