2

私はレガシー Web アプリケーション php4/mysql4 を持っています (MyISAM、db にはいくつかの cms、いくつかのユーザー データ、いくつかのカレンダー アプリケーションが含まれています)。今度は、php5/mysql5 を使用して新しいサーバーに移行します。

このような移行シナリオ (php、sql クエリなど) における典型的な php の問題は何ですか?

関数のパラメーターの受け渡しが、参照渡し/値渡しに変更されたと聞きました。例を挙げたり説明したりできますか?

他に知っておくべきことはありますか?

(mysql の問題は別の質問でカバーされています: Migrating php4/mysql4 to php5/mysql5: switch to InnoDB? )

4

3 に答える 3

2

移行に関する最善の支援は、PHP 担当者自身によるものだと思います。

于 2009-04-13T23:44:17.920 に答える
2

PHP 4/5 の互換性の問題のほとんどは、次の 2 つの問題です。

  • 新しい予約語
  • 新しいクラス/オブジェクト バックエンド

ほとんどの v4 コードは、v5 で問題なく動作します。問題に遭遇する可能性が高いのは、v4 のクラス モデルの制限に依存するコードや、v4 の参照の癖を利用するコードです。しかし、ほとんどの人は、これらの制限に対してコードを作成しません (私は持っています - だから私はそれらがそこにあることを知っています)。

クラス/オブジェクトの制限に行き詰まっている場合は、Zend エンジンを「v1」モードで実行して、クラスとオブジェクトを v4 のように動作させることができます。これは文書化されています。

于 2009-04-14T01:09:19.870 に答える
1

私は移行の最中で、多くのエイリアシングの問題を見つけています。

クリーンなコードが必要な場合は、特定のスニペットに対する適切なソリューションを見つける必要があります。クリーン度がそれほど重要でない場合は、この関数が非常に役立つことがあります。

function php4_clone($object) {
    if (version_compare(phpversion(), '5.0') < 0) {
        return $object;
    } else {
        return @clone($object);
    }
}
于 2009-04-13T23:59:53.827 に答える