PHP
PHPの少しマニアックなおすすめライブラリ
ぽんて
更新日:2021/08/12
すこーしマニアックだけど、実務でも使えそうなPHPライブラリを紹介します!
オススメのPHPライブラリ
Carbon
PHPでの日付操作を簡単に行うことができるライブラリです!
非常に面倒な日付の加算も簡単にできます!
Laravelでは標準搭載されており、そこまでマニアックでもないかもですが、とても便利なので紹介します!!
インストール方法
composer require nesbot/carbon
※Compserのインストールについては以下のサイトを参考ください
https://weblabo.oscasierra.net/php-composer-windows-install/
使用例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php require 'vendor/autoload.php'; use Carbon\Carbon; //現在の日時 $date = Carbon::now(); //1日後 $date->addDay(); //2日後 $date->addDay(2); //1ヶ月後 $date->addMonth(); //2ヶ月後 $date->addMonth(2); //1年後 $date->addYear(); //2年後 $date->addYear(2); |
他にもたくさん便利な関数が用意されているので、
もっと知りたい方は以下の参考サイトをチェックしてください!
参考サイト
https://qiita.com/yudsuzuk/items/ff894bd0b76d4657741d
hashids
指定したIDを元に、逆変換可能な短いユニークなIDを生成することができるライブラリ!
連番で管理しているIDをgetパラメータにしたい。
しかし、そのままのIDをつけるのは気が引ける。
そんなときにとっても便利なライブラリです!
インストール方法
composer require hashids/hashids
使用例
1 2 3 4 5 6 7 8 9 10 11 |
<?php require 'vendor/autoload.php'; use Hashids\Hashids; $id = 123456; //変換したいID $salt = "xxxxxx"; //変換のときに使う文字列 $hashids = new Hashids($salt, 5);//Hash後の文字数指定 $encode_id = $hashids->encode($id); var_dump($encode_id); //1vQd5 $decode_id = $hashids->decode($encode_id); var_dump($decode_id ); //array(1) { [0]=> int(123456) } |
encode関数は可変引数なのでID以外の情報を追加したhashIDも生成できます。いろんなところで試してみたくなりますね!
参考サイト
https://kahoo.blog/php-userid-unique-short-generate-hashids/
https://github.com/vinkla/hashids
VerbalExpressions
正規表現をわかりやすくするライブラリです!
正規表現ってわかりにくい!
もっとわかりやすく書きたい!って方におすすめ!
インストール方法
composer require verbalexpressions/php-verbal-expressions
使用例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php require 'vendor/autoload.php'; use verbalexpressions/php-verbal-expressions; $regex = new \VerbalExpressions\PHPVerbalExpressions\VerbalExpressions(); $regex->startOfLine() ->then("http") ->maybe("s") ->then("://") ->maybe("www.") ->anythingBut(" ") ->endOfLine(); var_dump($regex->test('https://b3s.be-s.co.jp/')); //true var_dump($regex->test('xxxxx://b3s.be-s.co.jp/')); //false |
ちなみに正規表現だとこんな感じ。
/^(?:http)(?:s)?(?:\:\/\/)(?:www\.)?(?:[^\ ]*)$/gm
うむ。どちらがお好みでしょうか。
参考サイト
https://qiita.com/phi/items/ec71f530c6bde1ac58fe
https://github.com/VerbalExpressions/PHPVerbalExpressions
php-image-squeezer
画像の圧縮を簡単に実現できるライブラリ!
目視でもあまりわからない程度の圧縮なので重宝しそうです。
中を見ると、ffmpegという画像圧縮プログラムを利用していました。
インストール方法
composer require “lorddashme/php-image-squeezer”
使用例
1 2 3 4 5 6 7 8 9 |
<?php require 'vendor/autoload.php'; use LordDashMe\ImageSqueezer\ImageSqueezer; $imageSqueezer = new ImageSqueezer(); $imageSqueezer->load(); $imageSqueezer->setSourceFilePath(before.JPG'); $imageSqueezer->setOutputFilePath('after.JPG'); $imageSqueezer->compress(); |
参考サイト
https://github.com/LordDashMe/php-image-squeezer
ライブラリの探し方
今回はgithub内を「php」で検索し探しました。
https://github.com/search?o=desc&q=php&s=stars&type=Repositories
スターの多い順にソートしタイトルを順番に眺め、面白そうなものがあれば詳細を見るといった方法です。
スターが少ないライブラリになると、面白いものが多くなります。
とても良い暇つぶしになるので、おうち時間が増えた方におすすめです!