私は、数週間前にPHP 5.3がリリース候補ステージ(woo!)に到達したことに気付きましたが、最後に削除された機能のリストを見て、私の古いコードが壊れてしまいます。新しいバージョンのPHPへの移行
テストサーバー(テストサーバーにインストールして試してみてください)をやっていないと、コードを分析して問題を浮き彫りにすることができる移行ツールはありますか?たとえば、一部のスクリプトでereg_*
機能を使用している場合。
私は、数週間前にPHP 5.3がリリース候補ステージ(woo!)に到達したことに気付きましたが、最後に削除された機能のリストを見て、私の古いコードが壊れてしまいます。新しいバージョンのPHPへの移行
テストサーバー(テストサーバーにインストールして試してみてください)をやっていないと、コードを分析して問題を浮き彫りにすることができる移行ツールはありますか?たとえば、一部のスクリプトでereg_*
機能を使用している場合。
あなたが使用できる手法の1つは、廃止予定の機能のリストを削除してgrepにすることです。このようなことのために、小さなシェルスクリプティングfuは長い道のりです。
あなたは非推奨の関数名1行に1つずつ持つファイルdeprecated.txtがあるとしましょう:
for func in `cat deprecated.txt`
do
grep -R $func /path/to/src
done
あなたが使用している非推奨機能のすべてのインスタンスを教えてくれます。
ループで再grepするのではなく、 egrep -R '(dep_func_1 | dep_func_2 | etc ...)'/path/to/srcのような文を作成する方が効率的です。 別のオプションは、呼び出される関数の名前を含むxdebugトレースファイル - しかし、100%のコードカバレッジを得るのは難しいでしょう。 –
もちろん、それはより効率的ですが、読みやすいシェルを書くのはちょっと難しいですファイルからdep_func_1、dep_func_2などを読み込み、grepを実行するスクリプト。私は読みやすさのために、速度のためではなく、それをしました。 :-P – Benson
現在実行しているバージョンは何ですか? – cletus
5.2.4、これは問題ではありませんか? – nickf
5.2から5.3に移行した場合には、5.1から5.3に移行すれば、そこには存在しないということになります。 coruseの現在と新しいバージョンの両方が関連しています。 – cletus