WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
EC-CUBE
システム開発
[EC-CUBE]EC-CUBE4のCron処理の設定方法
システム開発担当のTFです。
※EC-CUBE4系統対応
やり方
- Command を継承した実行したい処理を記述したファイルを 「app\Customize\Command」内に作成する
- キャッシュを削除する
- 作成したファイルの defaultName を 「bin/console」 で実行する
- それを、Cronで定期実行の設定を行う
サンプル
<?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;
use Eccube\Repository\CustomerRepository;
use Doctrine\ORM\EntityManagerInterface;
// Commandを継承したCron処理を行いたいクラス
class TestCommand extends Command
{
// bin/console で実行する名前
protected static $defaultName = 'eccube:customize:test';
// 依存性注入( 処理で必要な物を設定する )
public function __construct(
CustomerRepository $customerRepository,
EntityManagerInterface $entityManager
) {
$this->customerRepository = $customerRepository;
$this->entityManager = $entityManager;
parent::__construct();
}
// 実行処理
protected function execute(InputInterface $input, OutputInterface $output)
{
// cronで実行したい処理を記述する
}
}
// 作成した処理の実行( defaultNameを指定する )
php bin/console eccube:customize:test
# cronの定期実行設定 * は毎回 必要な頻度や時間でセットする
# 分 時 日 月 曜日 コマンド(
# cdでbinへ移動
# phpのパスは環境で変わる為要確認
# 上記 処理の実行
# 1> /dev/null は 標準出力を破棄する
# )
* * * * * cd eccubeのパス/bin/; /usr/local/bin/php console eccube:customize:test 1> /dev/null