繁体   English   中英

在symfony控制台命令中进行依赖注入? 不完整的Symfony应用程序

[英]Dependency injection in a symfony console command? Not full Symfony application

我已经看到了如何将依赖项注入到Symfony Console命令中? 但是该答案并未真正提供足够的信息,并且已经在此处进行了说明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文件。 但是我没有应用程序目录,因为这不是完整的symfony应用程序。 除上述文件外,所有应用程序所在的基本目录是src / lib。 如果我能弄清楚上面的第一部分,symfony能够在src / lib / config / config.php中找到配置文件吗?

您可以使用Consolefull应用程序。

Consolefull是一个简单的库,可与Symfony控制台组件和Symfony依赖注入组件一起使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM