2016-05-11

PHPで休日を管理するなら yasumi【サンプルあり】

ウェブサイトの開発を進めているとたまに必要となってくるものに「祝日、休日の取り扱い」があります。
祝日・休日は結構厄介で、最近で言うと「山の日」など新たに制定されたり、突然名前が変わってしまう場合もあるため、これまでは Google Calendar APIから取得をするというのが定石だったかと思います。

ただ、GoogleのAPIは変更が大きく、また廃止されてしまうものも少なくないため最近は極力は使用しないようにしています。

そこで、何か別のアプローチ方法はないかと考えていたところ、とても便利なパッケージを発見したので試してみました。

その名は「Yasumi」です。(←開発者は日本の方っぽいです)
世界各国の言語での翻訳にも対応しているようなので、もちろん日本語の祝日・休日の名前も取得できますよ。


【インストール】
composer を使ってインストールできます。
composer require azuyalabs/yasumi

【使い方】
使い方はとても簡単で、Yasumi::create() の引数に
  1. どこの国の祝日・休日を取得するか
  2. 取得したい祝日・休日は西暦何年か
  3. (オプション)翻訳する言語はどこか
を設定するだけで1年間の全祝日・休日を取得することができます。

use Yasumi\Yasumi;

$holidays = Yasumi::create('Japan', 2016, 'ja_JP');

foreach ($holidays as $holiday) {

   echo $holiday->format('Y-m-d') .': '. $holiday->getName() .'<br>';

}

【サンプル】


ちなみにこのパッケージも将来的にサポートされなくなってしまう可能性はありますがMITライセンスでの公開ですし、この記事を書いている時点で240ものスターがついているのでおそらくGoogle のAPIを利用するよりは安定性は高いと考えています。

いざとなったらPull Request やフォークして使えますしね。

ではでは、今回は以上です。


(休みほしい...笑)



0 件のコメント:

コメントを投稿