CONTENT
こんにちは、エンジニアのDです。
11月にPHP8.3がリリースされました。今回は追加された機能、変更点を抜粋してご紹介します。
【実行環境】
・PHP8.3
・Laravel 10.34.2
■Random拡張モジュールにgetBytesFromStringが追加
Random拡張モジュールはPHP8.2の時に追加された乱数生成のためのモジュールになります。今回そのモジュールに新たに追加された関数が「getBytesFromString」です。
指定した文字列からランダムで文字列を生成する関数になります。
下記のように、(a~z、0~9)までの文字列を使用し8桁でランダム生成を行うことが出来ます。仮パスワードの作成などで使用する事ができそうですね。
// 生成文字列の範囲
const STRING_PASSWORD_RANGE = 'abcdefghijklmnopqrstuvwxyz0123456789';
// 生成文字列桁数
const PASSWORD_NUMBER_OF_DIGITS = 8;
$randomizer = new \Random\Randomizer();
$password = $randomizer->getBytesFromString(STRING_PASSWORD_RANGE, PASSWORD_NUMBER_OF_DIGITS);
echo $password;
その他にも下記のような場合、文字の占める割合によって選ばれる確率も同じになります。
※ 指定した4文字のうち3文字が a 、1文字が b ということで、それぞれ約75%、約25%の確率で文字列が生成されます。
$randomizer = new \Random\Randomizer();
echo $randomizer->getBytesFromString('aaab', 10);
■実行結果
aaabaaabaa
こういった簡単な動作確認であれば「tinker」を使うと比較的容易に行うことが出来ます。
興味ある方は是非試してみて下さい。
今回はここまで。
それでは。