【EC-CUBE4】cronで定期実行するバッチ処理を実装

EC-CUBE WEB

タイトル通り、EC-CUBE4系(この記事書いた時点でのバージョンは4.0.5)でのcronで定期バッチの実装方法です。
そこそこ実装したりするので備忘録。

EC-CUBE4で使用しているSymfonyのCommandクラスを継承して実装します。

まずは基本的な形のみ。
詳細なプログラム例はまた別の機会に記事にします。

カスタマイズ用ディレクトリとして、「/app/Customize/」に「Commond」ディレクトリを作成します。
そこにSymfonyのCommandクラスを継承したClass(ogeMogeCommand.php)を作成します。

<?php

namespace Customize\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;

class HogeMogeCommand extends Command {

    /* cronで実行したい名前を指定します */
    protected static $defaultName = 'eccube:customize:hoge-moge';

    public function __construct( ) {
        parent::__construct();
    }

    protected function configure() {
      $this->setDescription('Hoge Moge');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        /* ここに定期実行したい処理 */
    }
}

基本はこれで大丈夫です。
あとはcronで起動させたいプログラムを指定してやれば定期実行されます。
※起動時間やeccubeディレクトリまでのパスは変更してください(cdって書くとエラー出ちゃうので.入れてます)。

0 0 * * * root c.d /【path】/eccube php bin/console eccube:customize:hoge-moge
タイトルとURLをコピーしました