PHPでフレームワークは必要ですか?[閉まっている]


9

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

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


2
最近、このSOポストに偶然出会ったそのフレームワークなしでPHPの使用に関するかなり洞察に満ちたルックス stackoverflow.com/questions/3655145/...
マット・モルナー

回答:


17

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

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

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


1
しかし問題は、毎日どのフレームワークを使用すべきかわからないことがたくさんあることです
Tayyab Gulsher Vohra

4
@Tayyabあなたは `em all!
Arnis Lapsa

1
フレームワークの選択は、アプリケーションのニーズとコーディングスタイルに基づいて決定することです。また、自問してみてください。独自のアプリをロールバックするためのフレームワーク、またはCMS(Joomla、Drupalなど)が必要ですか?
ダレンニュートン

2
「未知の未知数」に注意する必要があります。フレームワークを使用しない場合、フレームワークが解決するいくつかのことを忘れたり知らなかったりするリスクが大きくなります。たとえば、CSRF攻撃防止を正しく処理していますか?アプリはそのような防止策なしで機能しますが、簡単にハッキングされます。主要なフレームワーク(それらのいずれか)を選択すると、たとえそれについてまだ学習していなくても、Webアプリが関係する必要のあるすべてのものから利益を得ることができます。
Joeri Sebrechts 2013年

9

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

すべてのフレームワークには学習曲線があり、その曲線を克服するまで、フレームワークを使用することのすべての利点を打ち消すような逆行をすることになるでしょう。アプリケーションの開発が不必要に遅くなり、コードの追跡が難しくなり、フレームワークの新しいバージョンがリリースされると、すべてが壊れてしまいます。締め切りの厳しいプロジェクトには、なじみのないフレームワーク(またはなじみのないテクノロジ)を使用しないようお勧めします。

どのようにフレームワークを活用するのが上手になりますか?

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

PHPフレームワークを使用する必要がありますか?

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

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

ここに画像の説明を入力してください


7

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


よく私はビギナーであり、私はそれを初めてコードを書こうとしていると私はphpのコア開発者になりたいのでみんなを提案してください
Tayyab Gulsher Vohra

3
その記事は2006年のものであり、恥ずかしいほど古くなっています。
ジョナサンリッチ

1
@JonathanRich:その記事は古くなっているかもしれませんが、それでも恥ずかしいほど興味深いです!

4

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

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

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

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


1
まあ、私はphpの初心者で、まだ大きなことは何も開発していません。何を使用するのか、何をすべきなのかを混同しています。完全に空白です
Tayyab Gulsher Vohra

最初のステップはそれらを使用せず、テクノロジーとそれらがどのように機能するか(php、フレームワーク、js、cssなど)を学び、phpプログラミングの基礎を理解したら、Zend、Symfony、CakePHPなどのフレームワークを使用して学習しますアプリケーションをブーストする方法
guiman

2

冗談でしょ?

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

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

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

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つのフレームワークを使用しているいくつかのことを伝えたいと思います。1つはcodeigniterでもう1つはyiiです。コア開発者になりたいのですが、私のOOPコンセプトはあまり良くありません。
Tayyab Gulsher Vohra

$ p-> save()メソッドの「UPDATE」ステートメントと「INSERT」ステートメントをどのように区別しますか?
Srisa

@Srisa-IDを設定していません。UPDATEを行うには、私が必要とする:行全体を上書きするとは対照的に、行のマージにあります。$p=new Product($the_id); $p->load();load()
クリスチャン、

2

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

利点は次のとおりです。

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

欠点は次のとおりです。

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.