2016-11-08 8 views
0

端末からファイルを送信するクラス機能を取得する際に問題があります。あなたがでこれを追加する必要がsymfonyコントローラがなく、サービスのないコンテナを取得する

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

:私だけ

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 :) 

パーサ/ CommissionDataParser.php

で私の関数にデータを入れてサービスをしたいCommissionCostで

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

:それはそれを見ています設定方法:

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

次に、executeメソッドでそのメソッドにアクセスできます。

$input->getArgument('arg1'); 
関連する問題