5

私は、今後phpプロジェクトを処理するための最良の方法を見つけようとしています。数年前にカスタムフレームワーク上に構築されました-フレームワークは厳密なMVCではありませんでした...それは単にコントローラーとビュー、そしてライブラリーを持っていました。

それ以来、追加の機能を追加しましたが、古いコードと新しいコードが混ざり合っており、適切なデータベース管理が行われていない、完全な混乱のように感じ始めています。

私は自分の最善の選択肢が何であるかを決めるのに苦労しています。一方では、既存のコードベースにパッチを適用し続けて、それをいくらか使いやすく、将来にわたって利用できるようにするか、codeigniterに移行することができます(注:かなりの経験があるので、codeigniterと言います)。

Codeigniterオプションは、明らかに私がすべてを実行する必要があることを意味し、かなりの量の再コーディングがあることは間違いありませんが、長期的にはそれだけの価値があるかもしれません。

私が検討していた別のオプションがありました。それはLaravelフレームワークでした。直接の経験はありませんが、Laravel 4(まだリリースされていません)が優れていると聞いています。

では、これら3つのオプションをテーブルに置いて、どれを選びますか。その理由は何ですか。率直に言って、現時点でどのルートを選択するのが最適かわからないため、どちらかを選択する説得力のある理由を探しています。

4

4 に答える 4

4

短い答え:どちらでもない

今度は少し長いバージョン..

フレームワークがどのような問題を解決しようとしているのかについて、あなたは混乱しているという印象を受けました。フレームワークを使用すると、単純なアプリケーションの開発が短縮されます。常に失われるのはパフォーマンスと、通常は保守性です。

フレームワークは、単純な問題を解決するためのツールを提供するために作られています。つまり、必要のないものがたくさんあるということです。また、フレームワークが解決しない、または解決策を作成する努力を積極的に妨げるという問題もあります。

代わりに何をすべきか..

コードをリファクタリングします。

プロジェクトに長い間取り組んできた場合、この経験から多くの教訓を得ることができます。既存のコードベースを改良して活用してください。

  • アーキテクチャに欠陥がある場合:壊れた部分を再構築する
  • 何かが機能するかどうかわからない場合: unittests を追加します。
  • 何かが遅いと思われる場合:コードをプロファイルして最適化する
  • 何かが何をするかわからない場合:見つけてコメントを追加する

このようにして、プロジェクトとスキルの両方を強化します。

PS
新しいプロジェクトを開始する場合でも、両方のフレームワークを避けることをお勧めします。どちらも悪い慣行と悪いコードでいっぱいです: どこにでもあるグローバルな状態、手続き型プログラミング、MVC の誤解、OOP の原則と法律の無視。

于 2012-10-31T21:50:36.097 に答える
0

私は最近、古いサイトを基本的にモジュラーModel-ViewセットアップからCodeIgniter(MXモジュラー拡張機能付き)に移動したので、実際にこれを経験しました。それほど時間はかからず、最も長い部分はモデルをCodeIgniterのActiveRecordパラダイムに変換することでした。

モデルの変換すらできないように思われるので、CodeIgniterへの変換は、特に経験を考えれば、それほど難しいことではないと思います。

于 2012-10-31T21:33:22.643 に答える
0

明確な権利や答えはありません。現在、または将来的に投資を行う必要があります。

個人的には、弾丸を噛んでCIへの移行を進めます。コードを修正する以上に戦っている場合は、短期的に行う努力は長期的には価値があります。

ほとんどの場合、既存のPHPアプリケーションをCodeIgniterに取り込むのにそれほど時間はかかりません。後で、コードを再編成するためにより多くの時間を費やす必要があります。

于 2012-10-31T21:33:31.830 に答える
-1

Laravel に切り替えると、すでに php v5.3+ と互換性があり、優れたコミュニティがあります。私は多くのプロジェクトで CI を使用しましたが、Laravel とうまくやっていくことは私の最善の決断の 1 つです。L3 は安定しており、完全にうまく機能しており、L4 は効率を最大化するために php の使用を再定義しようとしています。

古いシステムがOOP標準の形式で適切に構成されている場合は、少し時間をかけて使用可能なポーションをLaravelに移行し、Laravelの優れた機能を組み合わせて多くの時間を節約できます. たとえば、Laravel は Eloquent と呼ばれる適切に構造化された ORM を使用しており、わずか数分ですべてのデータ モデルを取り込むことができます。アクティブなコミュニティも見てみると、迅速なサポートを得ることができて幸せな人になるでしょう.

于 2012-10-31T21:51:15.037 に答える