3

コアPHPで開発された既存の製品はPHP5.2で構築されており、製品をPHP5.4に移行したいと考えています。

CodeSnifferは、バージョンの互換性を検出し、警告とエラーを含むレポートを生成できます。

現在のアプローチは次のとおりです。

  • 製品全体をスキャンし、CodeSnifferからレポートを取得します

  • ereg_replace関数に置き換えたりpreg_replace、最初の引数に区切り文字を追加したりするなど、各タイプの警告またはエラーを修正するための計画を準備します

  • 例:

    Original: $new = ereg_replace(“oldstring“, “newstring“, $old);
    Replace:  $new = preg_replace(“/oldstring/“, “newstring“, $old);
    
  • 計画を実装するためのPHPスクリプトを作成します

  • スクリプトを実行し、CodeSnifferで再度テストし、製品全体で再度テストを実行します

PHP5.2からPHP5.4に移行するためのより良いツールまたはアプローチはありますか?

4

2 に答える 2

1

これらの警告またはエラーに関する情報を収集し、「失敗」が発生したファイル名と文字列番号を解析し、手動モード (最も簡単な方法) でこれらの問題をすべて修正します。

プロジェクトが大きすぎても、そのようなケースはあまりないと思います。それ以外の場合は、互換性の問題を修正するよりもリファクタリングを考えたほうがよいでしょう。

于 2012-12-25T13:06:26.813 に答える
1

私のプロジェクトには PHPUnit テストがあります。テストでは、すべての警告と通知も記録されます。PHP5.2 では、警告や通知がないことを確認しました。その後、PHP 5.4 にアップグレードすると、多くの警告と通知が表示され、さらに多くのテストが失敗しました。それから、それらすべてを修正するだけの問題でした。私が抱えていた最も一般的な問題は、初期化されていないオブジェクトのプロパティを割り当てることです。

于 2012-12-25T13:49:09.517 に答える