2

PHP Web アプリケーションを、フレームワークを使用しない (これは私たちを殺しています) から、Zend Framework を使用するように変換することを考えています。アプリケーションのサイズのため、ゼロから始めることは実行可能な管理オプションになるとは思わないので、現在のサイト構造から Zend Framework を使用するサイト構造にゆっくりと変換する方法を研究し始めたかったのですが、このプロセスに関する多くの情報。

これまでの私の計画は、現在のコード ベースを Zend アプリケーションの public/ ディレクトリにダンプし、これが発生すると確信している多数の問題を修正してから、モジュールを 1 つずつ書き直すことです。

過去にこれを行った経験のある人はいますか?

4

1 に答える 1

6

私は今、これらのいくつかを行いました。私にとって最も効果的だったのは、古いアプリの周りに ZF を配置することでした。これにより、すべてのリクエストが ZF を通過します。次に、「レガシー」コントローラ プラグインを使用します。これは、リクエストが ZF によって満たされるかどうかをチェックし、そうでない場合は古いアプリに送信します。

class Yourapp_Plugin_Legacy extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        $dispatcher = Zend_Controller_Front::getInstance()->getDispatcher();
        if (!$dispatcher->isDispatchable($request)) {
            // send to the old code...
        }
    }
}

リクエストを古いアプリに送信する正確な方法は、実装方法によって少し異なります。あるプロジェクトでは、リクエストを調べて、古いコードのどのファイルにリクエストが送信されるかを判断し、それを要求しました。別のプロジェクトでは、これらすべてのリクエストを ZF プロジェクトの LegacyController にルーティングし、古いコードを実行して結果の HTML を取得し、それを新しいプロジェクトの Zend_Layout 内にレンダリングしました。

このアプローチの利点は、要求の 100% を ZF が処理できるようになるまで、古いアプリの一部を書き換えながら ZF モジュールを徐々に導入できることです。また、古いコードが実行される前に ZF プロジェクトが初期化されるため、古いコードは ZF オートローダを使用できるため、古いコードのクラスをより ZF スタイルで記述されたモデルに置き換えて、それらを両方で使用することができます。アプリの一部。

于 2012-05-04T18:00:51.187 に答える