Wakarana v26.07-1を公開しました
公開日時: 2026-07-30 03:05:15更新日時: 2026-07-30 03:05:15Midari Createでは、オープンソースのwebアプリケーション組み込み向けログイン認証・ユーザー管理ライブラリ「Wakarana」の最新版となるバーション26.07-1を公開しました。この更新では、各種設定値読み込み処理の効率化や、カスタムフィールドの機能強化を行っています。
詳細な変更内容は以下の通りです。
各種設定値読み込み処理の効率化
Wakaranaでは、INIファイルに各種設定値を記載する方式を開発開始当初より採用しており、この方式は手動での設定変更が容易であるなど、Wakaranaの導入の「手軽さ」を決定付ける重要な要素として機能しています。しかしながら、この方式はPHPファイルが実行されるたびにINIファイルのパース処理が発生するためオーバーヘッドが大きく、さらに、v23.10-1からはカスタムフィールド設定ファイルのパース処理も加わったことでオーバーヘッドはより大きなものとなっていました。
この問題の緩和策として、v26.07-1では、設定ファイルのパースによるオーバーヘッドを削減するため、これらの設定ファイルに含まれる設定値をPHPファイルにキャッシュする機能を搭載しました。
設定値をPHPファイルにキャッシュした場合、当該PHPファイルはサーバのメモリ上に一定時間キャッシュされるため、INIファイルやJSONファイルをパースする場合に比べてディスクアクセスを大幅に抑制でき、圧倒的に効率のよい設定地の読み込みが可能となります。
ただし、設定値をPHPファイルにキャッシュすると、手動でINIファイルを更新した場合には毎回このキャッシュファイルの削除も行う必要が発生するため、PHPファイルへの設定値のキャッシュは設定ファイルの設定値「use_config_cache」にtrueが設定されている場合のみ有効となる設計を採用しています。
カスタムフィールドの機能強化
今回の更新では、カスタムフィールド機能に対して、以下の機能強化を実施しました。- 文字列型カスタムフィールドと数値カスタムフィールドの双方で、値の更新時にユーザー情報の更新日時を更新するか否かをカスタムフィールドごとに設定可能に。
- 数値型カスタムフィールドでは、小数点以下の桁数を指定できるように。
ストレージ使用効率の改善
各ユーザーが保有する権限を記録するデータベーステーブルにベースロールの情報を記録しないようにすることで、ストレージ仕様効率の改善を図りました。これに関連して、wakarana_user::get_roles では、返り値のロールの並び順でベースロールが常に最後となるようになっています。
全てのユーザーを取得する関数の改良
登録されているユーザーを取得する関数である wakarana::get_all_users では、第2引数に-1を指定することで、上限を設けずに全ユーザーの情報を取得することができるようになりました。また、これに伴い、wakarana::get_all_users の第2引数の既定値は100から-1に変更となっています。
ユーザー別権限キャッシュの再構築関数を追加
各ユーザーが保有する権限のキャッシュが何らかの要因により破損した場合に、ロールに割り当てられた権限の情報とユーザーが保有するロールの情報から必要なキャッシュデータを再構築する関数 wakarana_config::rebuild_user_permission_caches を追加しました。ダウンロード
Wakarana v26.07-1はMidari Createの詳細情報ページからダウンロードしていただけます。古いバージョンをダウンロードする必要がある場合は、Fossilリポジトリをクローンし、バージョン番号のタグでチェックアウトしてください。
この記事のタグ:
Wakarana
Wakarana