実現したいこと
現在、PHP5系で動作しているMapleフレームワークを使用したプロジェクトをPHP7系に移行しようとしています。
発生している問題・分からないこと
しかし、Mapleフレームワーク自体が古いため、コア部分で多くの文法エラーが発生しており、修正が困難な状態です。
主な問題点は以下の通りです:
PHP7系で非互換となった構文が多数含まれている テンプレートエンジン(SmartyまたはHTML_Template_Flexy)に関する依存関係の確認が必要
このような状況で、MapleフレームワークをPHP7系に対応させるためのアプローチやベストプラクティスがあれば教えていただけますでしょうか?
また、過去に同様の移行作業をされた方の体験談も歓迎します。
よろしくお願いいたします。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
構文エラーを修正中だが上手くいかない気がしてきた。
補足
特になし
> PHP5系からPHP7系に
今なら PHP8では?
> MapleフレームワークをPHP7系に対応させるためのアプローチ
ほぼゼロからの再開発になるんじゃないかと思います。
ソースを読んで(≠見て)内容を理解し、現在の作り方で実装するしかないと思います。
単にエラーが出ない様にするだけでは、無駄な動作だったり遠回りだったりするんじゃないかと...
バージョンに合わせて厳しくチェックしてくれるIDEをお供に、ボチボチやっていく事になると思います。
AIにソースを喰わせて改善案を出させるってのもアリでしょうけど、それが信用できるかの判断は必要でしょうからね。
頑張ってください。
(補足)
> PHP7系で非互換となった構文が多数含まれている
廃止された関数はたくさんありますが、代替手段はあるのでは?
__自作関数の作成を含む
https://www.php.net/manual/ja/migration70.incompatible.php
> 依存関係の確認が必要
テンプレート側へ(現状が)何をどうやって渡しているか、テンプレート側で何を受け取りたいと思っているかを地道に調べていくしかないのでは?
> 過去に同様の移行作業をされた方の体験談
古いCMS的ブログツールやフレームワークを改造当時の状況に合わせて改造した覚えがあります。
正規表現と strpos() / str_replace() / substr() (偶には simpleXML)等との違い(主に速度)を実データで調べつつ置換していったり、register_globals前提のモノをoffでも対応できる様にしたり...
結構勉強になったなと思います。
ありがとうございました!
PHP8への移行や再開発のアプローチについて、とても参考になりました。特に、IDEの活用や自作関数の作成に関するご指摘は今後の作業に大いに役立ちそうです。
引き続き、頑張って進めていきますので、また何かあればご相談させていただくかもしれません。ありがとうございました!
先のコメントの
> バージョンに合わせて厳しくチェックしてくれるIDE
は PhpStorm を念頭に置いています。
VSCodeの様な「なんちゃって」では無理だと思います。
PHP8はもう直ぐ 8.4 が出ます。
リリース後、こちらにも対応しておくと、より効率化出来たり、延命が図れるかもしれません。
もう開発が終了している(パッと見つかるダウンロードページではソースを取得できないみたい)様子なので、そのまま移植するのではなく組み込むモノを厳選(あるいは拡張)してオリジナルを目指すのも良いかもしれません。
__外部テンプレートエンジンを使わず、PHPをそのまま使うとか
__PHPは非常に優秀なテンプレートエンジンとも考えられますから
あなたの回答
tips
プレビュー