pluginでバッチ処理を作ろうとして、はまったことを記載したいと思います。
公式ドキュメントには以下のページがあり、こちらを参考に作成できます。
参考URL:http://doc.ec-cube.net/plugin_console-plugin
ですが、これはバージョン3.0.13以降で利用できる機能であり、今回の案件ではそれより前のバージョンで作成するため、この機能は利用できません。
plugin内部で作成する方法を模索しましたが見つからず、また前任者がすでにコアに手を加えていたこともあり、今回はcommandディレクトリ内にファイルを作成することにしました。
// ec-cube/app/consoleに以下を追加。
$console->add(new Eccube\Command\Test());
// ec-cube/src/Eccube/CommandにTestCommand.phpを追加。
class TestCommand extends \Knp\Command\Command {
protected $app;
protected function configure()
{
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->app->initialize();
$this->app->initializePlugin(); //プラグインで定義したserviceやrepository等を使う場合
$this->app->boot();
//以下処理
}
}
バージョン3.0.12以前でもプラグイン内部で作成する方法があれば教えてください。
以上。