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
スターの多い順にソートしタイトルを順番に眺め、面白そうなものがあれば詳細を見るといった方法です。
スターが少ないライブラリになると、面白いものが多くなります。
とても良い暇つぶしになるので、おうち時間が増えた方におすすめです!
 
									 
									