在終端,當我嘗試運行我創建的命令,我得到以下錯誤:爲什麼我總是在symfony控制檯中收到消息「您無法轉儲具有參數的容器」?
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]]
You cannot dump a container with parameters that contain references to other services (reference to service "old_sound_rabbit_mq.split_file_producer" found in "/rabbit").
這是發生了什麼,當我跑我的新創建的控制檯命令:
$this->getContainer()->get('split_file')->process();
我不知道爲什麼它說You cannot dump
!我不會在該項目中存儲任何內容。
有什麼我不知道的?
編輯
我services.yml的一部分:
<parameters>
<parameter key="file_path">/var/www/path/file.xml</parameter>
<parameter key="rabbit" type="service" id="old_sound_rabbit_mq.split_file_producer" />
</parameters>
<service id="split_file" class="Acme\DemoBundle\SplitFile">
<argument>%file_path%</argument>
<argument>%rabbit%</argument>
</service>
這是我的控制檯命令類:
namespace Acme\DemoBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class ReadFileCommand extends ContainerAwareCommand
{
protected function configure()
{
$this->setName('reader:read-file');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->getContainer()->get('split_file')->process();
}
}
高速緩存時,容器被傾倒。 –
你是什麼意思@WouterJ ?? – ALH
使用split_file的服務定義更新您的問題。另外,請確認剛剛運行的應用程序/控制檯會觸發相同的錯誤。也可能嘗試高速緩存的清除。 – Cerad