AIを活用した古いプログラムのデバッグ

古都の老兵
2024-10-17
2024-10-17

はじめに

 昨今はAIブーム花盛りな訳ですが、当エンジニアブログでも多くの記事がアップされています。活用している人は非常にうまく活用されていますが、まだまだどの様に使ったら良いか分からないという方も多く居られるようです。

 そこで今回はAIを使ったプログラムのデバッグ、特にサポート期間が過ぎたPHP等の言語のバージョンアップに伴うプログラムの修正をしてみたいと思います。

CentOS7 から Alumalinux9 へ

 CentOS7 標準の PHP は 5.4 でしたが、2024年の6月30日をもってサポートが終了しましたので、他のOSに移行されたりといった事があったと思います。Alumalinux9 へ移行する場合は最低でも PHP 8.0 になりますので、PHP 5系 ⇒ 8系へと一気に2つのバージョンが上がる事になりますからそのままでは動作しないといった事があると思います。
 実際当社でも内部で使っているスクリプトで動かないといった事がありましたので、AI に手助けしてもらいましょう。

# php ./sample.php
 PHP Fatal error:  Uncaught Error: Call to undefined function ereg_replace() in  sample.php:5

 エラーの直接の意味としては ereg_replace() 関数がありませんというメッセージなのですが、何が原因なのでしょうか?関数のパッケージを入れ忘れているのでしょうか?AIさんに聞いてみましょう。実際にエラーが出ているソースコードの行は以下のようになってました。

$val = ereg_replace( "\.$", '', $val );

 なるほど、ereg_replace() という関数が使えるのは PHP5 までで PHP7 以降では削除されたようですね。関数が存在しなくなったのですから違う方法で同じ機能を実現する方法を考えなければなりませんが、対処方法も示してくれています。ereg_replace() の代わりに preg_replace() を使い、検索パターンの文字列を / で囲むだけで大丈夫のようです。

 実際にアドバイス通りに修正すると正常に動作するようになりました。

最後に

 実はこれくらいの問題であればプログラミングを職業とされているような方々が使っている優秀なエディターであればエディット中にでも指摘してくれる程度のものですし、指摘されなくても長年の経験で対応できるものだろうと思います。AIの最近のトレンドでは生成AI等の作り出すものに目を向けられていますが、こういったプログラムの修正等の今までだと職場の先輩に聞いたり教えてもらったりしていたことがAIが変わって役割をになってくれます。
 ただし、プログラムの修正をしてもらうのにどこまでソースを出すのかといった機密情報等の問題も出てくる可能性もありますので、その辺りは注意が必要かもしれません。