CakePHPでクリスマスをお祝いする準備をする
Cakephp3で利用できる、ジョブスケジューラーを用いてクリスマスをお祝いしたいと思います。
この記事でも紹介されている cakephp-cron-jobs というジョブスケジューラーを利用します。
PHPのジョブスケジューラーである、lavary/crunz のラッパーしてCakePHP3で使いやすくしてくれています。
この企画の意図
CakePHP3のジョブスケジューラーを見つけた時に、
これを使って「メリークリスマス〜」っていうとなんかクリスマスっぽいなという企画です。
でもよくよく考えると、12月24日 00:00 はメリークリスマスではありませんね。。。。
「メリークリスマスイブ〜」とさせていただきます。。。。。
抑えた日付をミスりました。。。。
準備
あまりにも簡単に動いたので。。。。
そんなにボリュームはありませんが、準備手順をご紹介。
README.mdに従えばサクサク動きます!
ドキュメントが充実してて素晴らしいです。
準備1 composer install
composer require elstc/cakephp-cron-jobs
準備2 Pluginの設定
CakePHP >= 3.6.0
src/Application.php
$this->addPlugin('Elastic/CronJobs');
CakePHP <= 3.5.x
config/bootstrap.php
Plugin::load('Elastic/CronJobs');
準備3 設定ファイル作成
下記のコマンドを実行
bin/cake CronJobs publish:config
ルートディレクトリ配下に crunz.yml というファイルが作成されます。
コマンドを打つ時にタイムゾーン指定する必要があります。
準備4 タスクの設定
bootstrap_cli.php
use Cake\Event\Event;
use Cake\Event\EventManager;
EventManager::instance()->on('CronJobs.buildSchedule', static function (Event $event) {
$schedule = $event->getSubject();
/* @var $schedule \Elastic\CronJobs\Schedule\CakeSchedule */
// Add scheduled shell command
$schedule->run('echo "めりーくりすます いぶー"')
->description('Christmas')
->cron('0 0 24 12 *');
});
準備5 タスクの確認
bin/cake CronJobs schedule:list vendor/elstc/cakephp-cron
めりーくりすます いぶー
みなさま良いお年を。