2016-11-08 72 views
0

我有我的類功能,我從終端發送文件的問題。這是看到:symfony獲取容器不在控制器和服務

terminal: // php src/AppBundle/Provider/CommissionCost.php test.csv 
在CommissionCost

我只想把數據到我的功能解析/ CommissionDataParser.php

global $kernel; 

    $data = $kernel->getContainer()->get('data.parser')->getData($argv[1]); 

    var_dump($data); 
//Uncaught Error: Call to a member function getContainer() on null 
// this example i see in stackoverflow in topic about container :) 

服務:

services: 
    data.parser: 
      class: AppBundle\Parser\CommissionDataParser 
      arguments: ["@doctrine.orm.entity_manager"] 
+4

OMG'global'?真? http://stackoverflow.com/questions/12445972/stop-using-global-in-php –

+1

它看起來像你試圖直接運行CommissionCost?有沒有什麼內容正在初始化應用程序內核?我懷疑不是。要訪問完整的symfonf容器,您需要將您的功能包含在控制檯命令中:http://symfony.com/doc/current/console.html – Cerad

+0

我需要從終端文件發送,如果我創建控制檯命令,如何我發送文件? –

回答

0

您需要在添加此配置方法:

$this->addArgument('arg1', InputArgument::REQUIRED, 'Your first arg'); 

然後,你可以通過執行方法訪問它:

$input->getArgument('arg1');