CakePHP バッチ処理

バッチ処理の機能

CakePHP3の機能をフルに使える。
DBの取得、ログ出力、例外、固定値ファイル等

バッチ実装方法

※TestShell.php
<?php
namespace App\Shell;

use Cake\Console\Shell;
use Cake\Log\Log;
use Cake\Controller\Component;
use Cake\Controller\ComponentRegistry;
use App\Controller\Component\TESTComponent;

「Shell」を継承
class TESTShell extends Shell {

  public function initialize() {
    コンポーネントを参照(コンポーネントを利用する場合)
    $this->TEST = new TESTComponent(new ComponentRegistry());
  }

  シェルではmainメソッドが自動実行される
  public function main() {
    TESTComponent内のメソッドを実行
    $this->TEST->check();
  }
}

ファイル構成

~
└cake.php
└logs
 └cli-debug.log
 └cli-error.log
  ↑画面ログとは別にシェルログが出力される
└src
 └Controller
  └Component
   └TESTComponent.php
└Shell
 └TestShell.php
  ↑末尾に「Shell」を付ける

シェル実行方法

php cake.php TEST
↑TEST=TestShell.php

Follow me!