タイトル通り、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