LoginSignup
3
1

More than 3 years have passed since last update.

CakePHPでクリスマスをお祝いする準備をする

Last updated at Posted at 2019-12-23

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

スクリーンショット 2019-12-23 22.30.12.png

めりーくりすます いぶー

スクリーンショット 2019-12-23 22.31.00.png

みなさま良いお年を。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1