自社サービス
自社開発のSaaS
画面 jQueryBootstrap → Vue 3InertiaTailwind CSS
- どんなシステム
- 外部の10サービスとつながり、毎晩自動で動く業務の仕組み(画面約75)
- 難しかった点
- 10の外部サービスとの連携を、すべて動く状態のまま移した
- 引き継いだもの
- 利用者に配布済みのURLを、切らずに移した
- いま
- Laravel・PHP 8.4で稼働している
FuelPHP 1.9.0 が出ました。これ以降、新しい版は出ていません。出典:Packagist fuel/core
PHP 7系の最後の版(7.4)のサポートが終わりました。出典:php.net
開発用のブランチ(1.9/develop)には更新が続いていますが、1.9.0 の次の版は出ていません。出典:GitHub fuel/core
| FuelPHP | Laravel |
|---|---|
Orm\Model | Eloquent |
DB::query() の生SQL | クエリビルダ(プレースホルダ) |
Validation::forge() | FormRequest |
| SimpleAuth | Laravelの認証(bcrypt / Argon2) |
| Oilのタスク+cron | Artisanコマンド+Laravel Scheduler(withoutOverlapping()) |
config/production/ の設定ファイル | .env |
| Presenter・PHPのテンプレート | Blade、または Inertia+Vue 3 |
自社のシステムでは、2009年版の phpQuery が PHP 8.5 で構文エラーになりました。symfony/dom-crawler に置き換えました。
SimpleAuthは、全員共通のソルトを使う PBKDF2(SHA-256)でパスワードを保存しています。移行先で同じ計算を一度通し、ログインできた時点で bcrypt / Argon2 に作り直します。
fuel/core・fuel/packages への直接の改変 フレームワーク本体に入っている手直しを、本体との差分で洗い出します。残す動きを決めてから移します。
受け取る側でトークンを確かめているかを全フォームで見ます。移行先では Laravel の CSRF ミドルウェアにそろえます。
Security クラスの差し替え 出力のエスケープを自作のクラスに差し替えていないかを確かめます。移行先では Blade の自動エスケープにそろえます。
CSV は SJIS、メールは ISO-2022-JP のように機能ごとに文字コードが分かれている場合は、mb_convert_encoding() の箇所をすべて洗い出して移します。
設定ファイルや public/ の下にあるものは、.env に移して作り直します。外部に配ったURLの計算に使っている値だけは、変えずに置き場所を移します(変えると配布済みのURLが切れます)。
each() と create_function() は PHP 8.0 で削除され、動的プロパティは 8.2 で非推奨になりました。
fuel/core/classes/fuel.php の VERSIONphp -v、またはサーバー会社の管理画面自社サービス
画面 jQueryBootstrap → Vue 3InertiaTailwind CSS
医療・ヘルスケア企業
画面 jQueryBootstrap → Vue 3InertiaTailwind CSS
「最小限の対応」としてお受けできます。FuelPHPの新しい版は2021年12月の 1.9.0 から出ていないため、置き換えの時期も一緒に決めます。最小限の対応のあとの保守はお受けしていません。
SimpleAuthの方式を移行先で引き継げば、再設定は要りません。ログインできた時点で、新しい方式に作り直します。
はい。事例の2件とも、jQuery・Bootstrap から Vue 3・Inertia・Tailwind CSS に作り替えました。
直せます。改修を止める日は、調査の段階で決めます。