web-dev-qa-db-ja.com

PHPでフレームワークは必要ですか?

PHPでフレームワークは本当に必要ですか?

1つを使用する利点と欠点は何ですか?

いいえ。しかし、彼らは素晴らしいです。

Pros:自分でコードを再構築する必要がない時間を節約します。プロジェクトに適用される、他の誰かが構築した無数の機能、関数、およびデータ構造を使用します。

短所:自分でコードを作成しなかった場合、プロジェクトが動作する基盤について理解を深めることができなくなる可能性があります。

17
Tim

Webアプリケーションフレームワークは、それらを使用した経験と同じくらい優れています。

すべてのフレームワークには学習曲線があり、その曲線を克服するまで、フレームワークを使用することのすべての利点を打ち消すような逆行をすることになるでしょう。アプリケーションの開発が不必要に遅くなり、コードの追跡が困難になり、フレームワークの新しいバージョンがリリースされると全体が機能しなくなります。期限の厳しいプロジェクトでは、見慣れないフレームワーク(または見慣れない技術)を使用しないようにしてください。

どのようにしてフレームワークの利用が改善されるのですか?

あなたはひと握りの神のひどいアプリケーションを構築し、繰り返す必要があります。最終的には癖を理解し、フレームワークを使用することで、開発時間を短縮し、コードを整理することができます。

PHPフレームワークを使用しますか?

PHPは最終的にフレームワークを使用します。問題は、独自のフレームワークを使用するか、サードパーティが開発したフレームワークを使用するかということです。私の経験では、おそらく独自のフレームワークを開発することはないでしょう。これは、サードパーティのフレームワークの堅牢性と品質に匹敵します。つまり、独自のフレームワークを開発することは、PHPコミュニティ)での通過権であるように思われるので、気にしないでください。独自のデータベース抽象化クラスを書くことから。

ここに役立つグラフがあります:

enter image description here

9
Jake McGraw

Rasmus Lerdorfによると、PHP自体がフレームワークであるため、追加のフレームワークは必要ありません。- http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

7
vartec

まあ、それは本当にあなたのプロジェクトのサイズに依存します。データベースがなく、10ページ以下のホームページである場合、フレームワークは多すぎます。主な理由は、特定のニーズに合わせるために、フレームワークは常に多くの構成とカスタマイズを必要とするためです。また、状況によっては、ファイルに含まれる複数のページよりも少し遅くなる場合があります(機能を使用するためにロードする必要のあるすべてのフレームワークについて考えてください)。

さて、データベースの相互作用、Webサービスなどを備えた中規模/大規模のサイトを計画している場合、さまざまなテクノロジーとの相互作用を支援し、問題が発生したときにコードが整理されるようにするフレームワークが必要になります。それをすばやく検出して修復するためのハビリティー。また、クライアントについて考える場合、クライアントは常にソフトウェアについての考え方を変えているため、クライアントが新しい機能を変更または追加する必要がある場合は、すべてのコードを調べて、この新しい機能をどのようにプラグインするかについて考える必要はありません。この食感。

他にもたくさんの長所と短所がありますが、これらは最初に私の心を超えたものです。

編集:私は日常的にsymfonyフレームワークを使用し、大学のphpを使用して作業しました(フレームワークの使用を許可されていないWeb開発に関するコースをいくつか持っていました)。そのほとんどはその経験から来ています。

4
guiman

すべてのアプリケーションがフレームワークを必要とするわけではありませんが、必然的なアプリケーションはフレームワークを必要とします。

利点は次のとおりです。

  • 自分を繰り返さないでください-新しいアプリケーションには、既存の多くのアプリケーションと共通の機能があります。自分の繰り返しを避けるのは理にかなっています。フレームワークには、ほとんどのアプリケーションに必要な機能がバンドルされています。その結果、時間(およびお金)を節約できます。
  • ご自身をごまかさないでください-一般的に、ソフトウェア開発はかなりひどい痛みを伴うことがあります。ありふれたものを自動化することは理にかなっています。フレームワークが配管を処理するので、非常に創造的になることに集中できます。その結果、労力(およびお金)を節約できます。

欠点は次のとおりです。

  • 私たちのやり方かどうか-フレームワークの厳格な規則に従う必要があるかもしれません。これは、物事がどのように行われるべきかについての独断的な信念に反する可能性があります(その結果、あなたを激怒させます)。
  • 後天的フレームワーク症候群-フレームワークに依存しすぎて、最も簡単なことすらできなくなる可能性があります。リクエストをルーティングする方法、データベースにアクセスする方法、オブジェクトをデータベースクエリにマップする方法などは、フレームワークがすべてを処理するため、忘れてしまいます。

全体として、1つを使用することをお勧めします。

2
user49491

からかってるんだろ?

必要性は使用に依存します。コンピュータは人類に必要ではなく、車なども必要ありません。

長所/短所については、それぞれ独自のものです!

私は自分のフレームワークからいくつかのサンプルコードを見せたいです:

class Product extends DatabaseRow {
    public $name='';
    public $price=0.0;
    public $images=array();
    public $description='';
    public table(){
        return 'products';
    }
}

$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();

私がそこで何をしたか見ますか?そのクラスは、ショップのモデルとして機能します。 OO以外に何が特別なのですか?テーブルまたは列が存在しない場合は、動的に作成されます。 0インストールスクリプト。もちろん、これは私のフレームワークの特定の機能です。しかし、あなたはアイデアを得ます。

2
Christian