2017-12-11 15 views
1

カスタムphpファイルでsymfonyサービスを呼び出す方法は? サービスはすでにバンドルで作成されています。 このphpスクリプトはコマンドラインから実行されます。助けてください。symfony 3.4サービス

+0

symfonyのコンソールコマンドを使用できますか?もしそうなら、すべてのSymfonyサービスを利用できるように設定されています。https://symfony.com/doc/3.4/console.html – JimL

+1

カスタムPHPファイルはどういう意味ですか?なぜあなたはContainerAwareInterfaceでSymfonyコンソールコマンドを使用しないのですか? –

+0

https://symfony.com/doc/current/console.html#getting-services-from-the-service-container –

答えて

2

説明したようにカスタムPHPファイルを作成するのは良い方法ではありません。通常、サービスはコントローラから呼び出されます。

コマンドラインからいくつかのコードを実行する必要がある場合は、Symfonyコンソールコマンドを使用して、たとえばCronsで非同期タスクを実行できます。

symfonyのドキュメントで説明したように、あなたは、コマンドのコンストラクタに渡す必要があるなど、多くのサービスを渡すことができ、ここであなたが基本的な例を見つけることができます、

use Symfony\Component\Console\Command\Command; 
use App\Service\UserManager; 

class CreateUserCommand extends Command 
{ 
    private $userManager; 

public function __construct(UserManager $userManager) 
{ 
    $this->userManager = $userManager; 

    parent::__construct(); 
} 

// ... 

protected function execute(InputInterface $input, OutputInterface $output) 
{ 
    // ... 

    $this->userManager->create($input->getArgument('username')); 

    $output->writeln('User successfully generated!'); 
} 
} 

をしてください。このリンクに見てみましょう: https://symfony.com/doc/current/console.html#getting-services-from-the-service-container

このヘルプが必要です。

関連する問題